Ejemplo n.º 1
0
 public VesselViewModel()
 {
     Vessel             = new VesselModel();
     VesselSpecificInfo = new VesselSpecificInfoModel();
     SpecificInfo       = new SpecificInformationModel();
     VesselCost         = new VesselCostModel();
 }
Ejemplo n.º 2
0
        public RequestResult <VesselSpecificInfoModel> InsUpdSpecificInfo(VesselSpecificInfoModel model)
        {
            VesselDA vesselDA = new VesselDA();
            RequestResult <VesselSpecificInfoModel> resp = new RequestResult <VesselSpecificInfoModel>()
            {
                Status = Status.Success
            };

            return(vesselDA.InsUpdSpecificInfo(model));
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
        }