예제 #1
0
        public void MapInspectionDTOToInspectionTest()
        {
            UserDTO    user    = this.CreateUser();
            VehicleDTO vehicle = this.CreateVehicle();

            InspectionMapper mapper        = new InspectionMapper();
            InspectionDTO    inspectionDTO = new InspectionDTO();

            inspectionDTO.Damages         = new List <DamageDTO>();
            inspectionDTO.CreatorUserName = user.UserName;
            inspectionDTO.Date            = DateTime.Now;
            inspectionDTO.Location        = "Puerto 1";
            inspectionDTO.IdVehicle       = vehicle.Vin;

            Inspection inspectionEntity = mapper.ToEntity(inspectionDTO);

            Assert.AreEqual(inspectionDTO.Location, inspectionEntity.IdLocation.Name);
            Assert.AreEqual(inspectionDTO.Id, inspectionEntity.Id);
            Assert.AreEqual(inspectionDTO.Date, inspectionEntity.Date);
            Assert.AreEqual(inspectionDTO.CreatorUserName, inspectionEntity.IdUser.UserName);
            Assert.AreEqual(inspectionDTO.IdVehicle, inspectionEntity.IdVehicle.Vin);
            foreach (DamageDTO damageDTO in inspectionDTO.Damages)
            {
                Assert.IsNotNull(inspectionEntity.Damages.Find(d => d.Description == damageDTO.Description));
            }
        }
예제 #2
0
        public Guid AddInspection(InspectionDTO inspection)
        {
            Inspection inspectionEntity = inspectionMapper.ToEntity(inspection);

            using (VehicleTrackingDbContext context = new VehicleTrackingDbContext())
            {
                inspectionEntity.IdUser = this.GetUser(context, inspection.CreatorUserName);
                Vehicle vehicle = this.GetVehicle(context, inspection.IdVehicle);
                inspectionEntity.IdVehicle  = vehicle;
                inspectionEntity.IdLocation = this.GetLocation(context, inspection.Location);
                inspectionEntity.Damages    = this.GetDamages(context, inspection.Damages);
                inspectionEntity.Date       = DateTime.Now;

                if (vehicle.Status == StatusCode.Waiting)
                {
                    vehicle.Status = StatusCode.ReadyToBeLocated;
                    var entry = context.Entry(vehicle);
                    entry.Property(sz => sz.Status).IsModified = true;

                    HistoricVehicle historicVehicle = mapVehicleToHistoricVehicle(vehicle);
                    context.HistoricVehicles.Add(historicVehicle);
                }
                else if (vehicle.Status == StatusCode.InPort)
                {
                    vehicle.Status = StatusCode.InspectedInPort;
                    var entry = context.Entry(vehicle);
                    entry.Property(sz => sz.Status).IsModified = true;

                    HistoricVehicle historicVehicle = mapVehicleToHistoricVehicle(vehicle);
                    context.HistoricVehicles.Add(historicVehicle);
                }


                context.Users.Attach(inspectionEntity.IdUser);

                context.Inspections.Add(inspectionEntity);
                context.SaveChanges();
            }

            return(inspectionEntity.Id);
        }