public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var character = request.Session.Character; var facilityEid = request.Data.GetOrDefault <long>(k.facility); var targetEids = request.Data.GetOrDefault <long[]>(k.target); _productionManager.GetFacilityAndCheckDocking(facilityEid, character, out InsuraceFacility insuraceFacility); insuraceFacility.InsuranceBuy(character, targetEids); var list = InsuranceHelper.InsuranceList(character); var result = new Dictionary <string, object> { { k.insurance, list } }; if (list.Count > 0) { Message.Builder.FromRequest(request).WithData(result).Send(); } else { Message.Builder.FromRequest(request).WithEmpty().Send(); } scope.Complete(); } }
public void HandleRequest(IRequest request) { var character = request.Session.Character; var facilityEid = request.Data.GetOrDefault <long>(k.facility); var targetEids = request.Data.GetOrDefault <long[]>(k.target); _productionManager.GetFacilityAndCheckDocking(facilityEid, character, out InsuraceFacility insuraceFacility); insuraceFacility.InsuranceQuery(character, targetEids, out Dictionary <string, object> result).ThrowIfError(); Message.Builder.FromRequest(request).WithData(result).Send(); }
public void HandleRequest(IRequest request) { var character = request.Session.Character; var targetDefinition = request.Data.GetOrDefault <int>(k.definition); var facilityEid = request.Data.GetOrDefault <long>(k.facility); _productionManager.GetFacilityAndCheckDocking(facilityEid, character, out Prototyper prototyper); _productionManager.ProductionProcessor.PrototypeQuery(character, targetDefinition, prototyper, out Dictionary <string, object> replyDict).ThrowIfError(); Message.Builder.FromRequest(request).WithData(replyDict).Send(); }
public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var facilityEid = request.Data.GetOrDefault <long>(k.facility); var lineId = request.Data.GetOrDefault <int>(k.ID); var character = request.Session.Character; _productionManager.GetFacilityAndCheckDocking(facilityEid, character, out Mill mill); var replyDict = mill.DeleteLine(character, lineId); Message.Builder.FromRequest(request).WithData(replyDict).Send(); scope.Complete(); } }
public void HandleRequest(IRequest request) { var facilityEid = request.Data.GetOrDefault <long>(k.facility); var character = request.Session.Character; _productionManager.GetFacilityAndCheckDocking(facilityEid, character, out Mill mill); var linesList = mill.GetLinesList(character); var facilityInfo = mill.GetFacilityInfo(character); var reply = new Dictionary <string, object> { { k.lineCount, linesList.Count }, { k.lines, linesList }, { k.facility, facilityInfo } }; Message.Builder.FromRequest(request).WithData(reply).Send(); }
public void HandleRequest(IRequest request) { using (var scope = Db.CreateTransaction()) { var character = request.Session.Character; var lineId = request.Data.GetOrDefault <int>(k.ID); var rounds = request.Data.GetOrDefault <int>(k.rounds); var facilityEid = request.Data.GetOrDefault <long>(k.facility); _productionManager.GetFacilityAndCheckDocking(facilityEid, character, out Mill mill); ProductionLine.LoadById(lineId, out ProductionLine productionLine).ThrowIfError(); productionLine.CharacterId.ThrowIfNotEqual(character.Id, ErrorCodes.OwnerMismatch); var maxRounds = Mill.GetMaxRounds(character); if (rounds > maxRounds) { rounds = maxRounds; } ProductionLine.SetRounds(rounds, productionLine.Id).ThrowIfError(); var linesList = mill.GetLinesList(character); var facilityInfo = mill.GetFacilityInfo(character); var reply = new Dictionary <string, object> { { k.lineCount, linesList.Count }, { k.lines, linesList }, { k.facility, facilityInfo } }; Message.Builder.SetCommand(Commands.ProductionLineList).WithData(reply).ToClient(request.Session).Send(); scope.Complete(); } }
public void HandleRequest(IRequest request) { var lineId = request.Data.GetOrDefault <int>(k.ID); var character = request.Session.Character; var facilityEid = request.Data.GetOrDefault <long>(k.facility); _productionManager.GetFacilityAndCheckDocking(facilityEid, character, out Mill mill); var productionLine = ProductionLine.LoadByIdAndCharacterAndFacility(character, lineId, facilityEid); productionLine.CalculateDecalibrationPenalty(character, out int materialEfficiency, out int timeEfficiency); var calibrationProgramDefinition = productionLine.GetCalibrationTemplateDefinition(); var result = new Dictionary <string, object> { { k.materialEfficiency, materialEfficiency }, { k.timeEfficiency, timeEfficiency }, { k.definition, calibrationProgramDefinition } }; Message.Builder.FromRequest(request).WithData(result).Send(); }