using Server.System; using Newtonsoft.Json; using Server.SQL; namespace Server.Service { public class EquipChange : AbstractService { private EquipChangeReq req; public void SaveSQL() { Statics.equipmentrSQL.SaveChanges(); Statics.deckUnitInfoSQL.SaveChanges(); } public override string Process() { User user = Statics.userSQL.SelectUuid(req.uuid); Equipment equipment = Statics.equipmentrSQL.SelectItem(user.id, req.equipment_id); DeckUnitInfo deckUnitInfo = Statics.deckUnitInfoSQL.SelectItem(user.id, req.unit_id); Equipment equipitem = null; if (equipment == null || deckUnitInfo == null) { throw new RuntimeException("Not Data", Error.nodata); } EquipmentData equipmentData = Statics.equipmentExcel.getEquipmentData(equipment.equipment_data_id); if (req.is_equipment) { switch (equipmentData.part) { case 0: if (deckUnitInfo.equip0_id != 0) { equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip0_id); equipitem.equip_unit = 0; Statics.equipmentrSQL.Update(equipitem); } deckUnitInfo.equip0_id = equipment.id; break; case 1: if (deckUnitInfo.equip1_id != 0) { equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip1_id); equipitem.equip_unit = 0; Statics.equipmentrSQL.Update(equipitem); } deckUnitInfo.equip1_id = equipment.id; break; case 2: if (deckUnitInfo.equip2_id != 0) { equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip2_id); equipitem.equip_unit = 0; Statics.equipmentrSQL.Update(equipitem); } deckUnitInfo.equip2_id = equipment.id; break; case 3: if (deckUnitInfo.equip3_id != 0) { equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip3_id); equipitem.equip_unit = 0; Statics.equipmentrSQL.Update(equipitem); } deckUnitInfo.equip3_id = equipment.id; break; case 4: if (deckUnitInfo.equip4_id != 0) { equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip4_id); equipitem.equip_unit = 0; Statics.equipmentrSQL.Update(equipitem); } deckUnitInfo.equip4_id = equipment.id; break; case 5: if (deckUnitInfo.equip5_id != 0) { equipitem = Statics.equipmentrSQL.SelectItem(user.id, deckUnitInfo.equip5_id); equipitem.equip_unit = 0; Statics.equipmentrSQL.Update(equipitem); } deckUnitInfo.equip5_id = equipment.id; break; } equipment.equip_unit = deckUnitInfo.id; } else { equipment.equip_unit = 0; switch (equipmentData.part) { case 0: deckUnitInfo.equip0_id = 0; break; case 1: deckUnitInfo.equip1_id = 0; break; case 2: deckUnitInfo.equip2_id = 0; break; case 3: deckUnitInfo.equip3_id = 0; break; case 4: deckUnitInfo.equip4_id = 0; break; case 5: deckUnitInfo.equip5_id = 0; break; } } Statics.equipmentrSQL.Update(equipment); Statics.deckUnitInfoSQL.Update(deckUnitInfo); return makeResp(equipment, deckUnitInfo, equipitem); } public override Protocol ProtocolValue() => Protocol.EquipChange; public override Req Requst(string json) { req = JsonConvert.DeserializeObject(json); return req; } private string makeResp(Equipment equipment, DeckUnitInfo deck_unit_info, Equipment change_equipment) { SaveSQL(); EquipChangeResp resp = new EquipChangeResp(); resp.status = 200; resp.equipment = equipment; resp.deck_unit_info = deck_unit_info; resp.change_equipment = change_equipment; return resp.ToJson(); } } public class EquipChangeReq : Req { public string uuid; public long unit_id; public long equipment_id; public bool is_equipment; public override bool IsReceivedAllField() { if(uuid == "" || unit_id == 0 || equipment_id == 0) return false; return true; } } public class EquipChangeResp : Resp { public Equipment equipment; public Equipment change_equipment; public DeckUnitInfo deck_unit_info; } }