public VesselViewModel() { Vessel = new VesselModel(); VesselSpecificInfo = new VesselSpecificInfoModel(); SpecificInfo = new SpecificInformationModel(); VesselCost = new VesselCostModel(); }
public RequestResult <VesselSpecificInfoModel> InsUpdSpecificInfo(VesselSpecificInfoModel model) { VesselDA vesselDA = new VesselDA(); RequestResult <VesselSpecificInfoModel> resp = new RequestResult <VesselSpecificInfoModel>() { Status = Status.Success }; return(vesselDA.InsUpdSpecificInfo(model)); }
public RequestResult <VesselSpecificInfoModel> InsUpdSpecificInfo(VesselSpecificInfoModel model) { RequestResult <VesselSpecificInfoModel> ER = new RequestResult <VesselSpecificInfoModel>() { Status = Status.Success }; using (var db = new EGULFEntities()) { ER = db.sp_InsUpdVesselSpecificInfo(model.VesselId, model.GrossTonnage, model.NetTonnage, model.BeamOverall, model.LengthOverall, model.MaximumLoadedDraft, model.FreeDeckArea, model.DeckStrenght, model.FreshWaterCapacity, model.FuelOilCapacity, model.BallastWaterCapacity, model.MudCapacity, model.CementTanksCapacity, model.OilRecoveryCapacity, model.WaterMarkerPlant, model.HotWaterCalorifier, model.SewageTreatmentPlant, model.CruisingSpeed, model.MaximumSpeed, model.DistanceCruisingSpeed, model.DistanceMaxSpeed, model.FuelConsumptionCruisingSpeed, model.FuelConsumptionMaxSpeed, model.DynamicPositionSystem, model.UserModifiedId) .Select(x => new RequestResult <VesselSpecificInfoModel>() { Status = (bool)x.IsError ? Status.Error : Status.Success, Message = x.Message }).FirstOrDefault(); return(ER); } }
public RequestResult <VesselModel> InsUpdComplete(VesselModel vessel, VesselSpecificInfoModel vesselSpecificInfo, SpecificInformationModel specificInfo, VesselCostModel vesselCost) { RequestResult <VesselModel> resp = new RequestResult <VesselModel>() { Status = Status.Success }; SpecificInformationServices specificInfoServices = new SpecificInformationServices(); CabinSpecificationServices cabinSpecificationServices = new CabinSpecificationServices(); RegionServices regionServices = new RegionServices(); PortServices portServices = new PortServices(); TransactionOptions scopeOptions = new TransactionOptions(); //scopeOptions.IsolationLevel = IsolationLevel.ReadCommitted; using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, scopeOptions)) { try { //Ciclo para ir a buscar diferentes puntos en el mapa, en caso de que el q se me asigne de forma aleatoria, se encuentre ya en BD int valLocation = 2; int test = 1; int cont = 0; while (valLocation > test && cont <= 100) { //Si se va a insertar, le agregamos un punto en el mapa if (vessel.VesselId == null) { test = 0; PortModel port = portServices.GetById((int)vessel.HomePort.PortId); vessel.Location = regionServices.GetLocation(port.Region.RegionId); } else //De lo contrario verificamos si ha cambiado su puerto, si cambió le asignamos una nueva locación { test = 1; int?RegionIdAct = portServices.GetById((int)vessel.HomePort.PortId).Region.RegionId; int?RegionIdAnt = GetById((int)vessel.VesselId).HomePort.Region.RegionId; if (RegionIdAnt != RegionIdAct) { vessel.Location = regionServices.GetLocation(RegionIdAct); } } //Verificamos si existe otro Barco en el mismo punto if (vessel.Location.Lat == 0) { test = valLocation; } else { valLocation = Get(new VesselModel() { Location = new LatLng() { Lat = vessel.Location.Lat, Lng = vessel.Location.Lng } }).Count(); } cont++; } if (cont == 100) { throw new Exception("Se ha alcanzado el número de barcos permitidos para una región"); } RequestResult <VesselModel> res1 = InsUpd(vessel); if (res1.Status != Status.Success) { throw new Exception(res1.Message); } vesselSpecificInfo.VesselId = res1.Data.VesselId; vesselSpecificInfo.UserModifiedId = vessel.UserModifiedId; RequestResult <VesselSpecificInfoModel> res2 = InsUpdSpecificInfo(vesselSpecificInfo); if (res2.Status != Status.Success) { throw new Exception(res2.Message); } specificInfo.MatchableId = res1.Data.VesselId; specificInfo.Type = SpecificInformationModel.VESSEL_TYPE; RequestResult <SpecificInformationModel> res3 = specificInfoServices.InsUpd(specificInfo); if (res3.Status != Status.Success) { throw new Exception(res3.Message); } List <CabinSpecificationModel> lstCabins = specificInfo.GetCabinSpecificationList(CabinSpecificationModel.VESSEL_TYPE); RequestResult <CabinSpecificationModel> respC; foreach (CabinSpecificationModel cabin in lstCabins) { respC = cabinSpecificationServices.InsUpd(cabin); if (respC.Status != Status.Success) { throw new Exception(respC.Message); } } vesselCost.VesselId = res1.Data.VesselId; RequestResult <VesselCostModel> res4 = InsUpdCost(vesselCost); if (res4.Status != Status.Success) { throw new Exception(res4.Message); } resp = res1; ts.Complete(); } catch (Exception ex) { resp.Status = Status.Error; resp.Message = ex.Message; ts.Dispose(); throw new Exception(ex.Message); } } return(resp); }