예제 #1
0
    private void Delete()
    {
        if (!base.ValidateIfCommandAllowed(Request.Url.AbsoluteUri, ENums.PageCommand.Delete))
        {
            return;
        }

        if (ValidateValues() == false)
        {
            return;
        }
        bool bActionCompleted = false;
        int  Id = 0;

        int.TryParse(hfId.Value, out Id);
        if (Id == 0)
        {
            lblStatus.Text = "Please click on edit button again.";
            return;
        }
        TransportDTO oTransportData = new TransportDTO();

        oTransportData.TransportId = Id;
        TransportMaster oTransportMaster = new TransportMaster();

        /*
         * ADDED BY VIJAY
         * CHECK IF THE Transport WHICH IS TO BE DELETED HAS ANY ASSOCIATED RECORDS...IF YES, MOVE OUT OF THE FUNCTION ELSE PROCEED
         * IF THE OUTPUT OF sMessage IS "", THEN RECORD CAN BE DELETED, ELSE NOT
         *
         */
        string sMessage = "";

        GF.HasRecords(Convert.ToString(Id), "Transport", out sMessage);
        if (sMessage != "")
        {
            base.DisplayAlert(sMessage);
            btnDelete.Enabled = true;
        }
        else
        {
            bActionCompleted = oTransportMaster.Delete(oTransportData);

            if (bActionCompleted == true)
            {
                sMessage = "The record has been deleted successfully";
                base.DisplayAlert(sMessage);
                txtTransport.Text = "";
                //lblStatus.Text = "Deleted";
                RefreshGrid();
            }
            else
            {
                sMessage = "Error Occured while deletion: Please refer to the error log.";
                base.DisplayAlert(sMessage);
            }
        }
        oTransportData   = null;
        oTransportMaster = null;
    }
예제 #2
0
        public void CreateTransportSuccessfullyTest()
        {
            TransportDTO transport = new TransportDTO();

            transport.StartDate = DateTime.Now;
            transport.EndDate   = DateTime.Now;
            transport.Batches   = new List <BatchDTO>();
            transport.User      = new UserDTO();

            var mockTransportDAO = new Mock <TransportDAO>();

            mockTransportDAO.Setup(vs => vs.FindTransportById(transport.Id)).Returns(transport);

            var mockInspectionService = new Mock <InspectionService>();
            var mockBatchService      = new Mock <BatchService>();
            var mockVehicleService    = new Mock <VehicleService>();

            var transportService = new TransportServiceImpl(mockTransportDAO.Object, mockInspectionService.Object, mockBatchService.Object, mockVehicleService.Object);

            Guid id = transportService.CreateTransport(transport);

            TransportDTO resultTransport = transportService.FindTransportById(transport.Id);

            Assert.AreEqual(transport.Batches, resultTransport.Batches);
            Assert.AreEqual(transport.EndDate.Date, resultTransport.EndDate.Date);
            Assert.AreEqual(transport.Id, resultTransport.Id);
            Assert.AreEqual(transport.StartDate.Date, resultTransport.StartDate.Date);
            Assert.AreEqual(transport.User, resultTransport.User);
        }
예제 #3
0
        public void CreateTransport(TransportDTO transportDTO)
        {
            Transport transport = mapperDTOToEntity.Map <Transport>(transportDTO);

            dataBase.Transports.Create(transport);
            dataBase.Save();
        }
예제 #4
0
        public IHttpActionResult GetById(Guid id)
        {
            HttpResponseMessage response = new HttpResponseMessage();

            if (id != null)
            {
                try
                {
                    Guid              token             = this.GetToken();
                    UserDTO           user              = this.userService.GetUserLoggedIn(token);
                    PermissionHandler permissionHandler = new PermissionHandler();
                    if (permissionHandler.IsUserAllowedToListTransports(user.Role))
                    {
                        TransportDTO transport = this.transportService.FindTransportById(id);
                        response = this.Request.CreateResponse(HttpStatusCode.OK, transport);
                    }
                    else
                    {
                        response = this.Request.CreateResponse(HttpStatusCode.Unauthorized, "El usuario no tiene permisos para ejecutar esta accion");
                    }
                }
                catch (Exception e)
                {
                    response = this.Request.CreateResponse(HttpStatusCode.BadRequest, e.Message);
                }
            }
            else
            {
                string message = "El formato del transporte es incorrecto";
                response = this.Request.CreateResponse(HttpStatusCode.BadRequest, message);
            }
            return(ResponseMessage(response));
        }
예제 #5
0
        public void GetAllTransportTest()
        {
            TransportDTO transport = new TransportDTO();

            transport.StartDate = DateTime.Now;
            transport.EndDate   = DateTime.Now;
            transport.Batches   = new List <BatchDTO>();
            transport.User      = new UserDTO();
            List <TransportDTO> listTransports = new List <TransportDTO>();

            listTransports.Add(transport);

            UserDTO userDTO = this.CreateUser();
            Guid    token   = Guid.NewGuid();

            var mockTransportService = new Mock <TransportService>();

            mockTransportService.Setup(vs => vs.GetAllTransports()).Returns(listTransports);
            var mockUserService = new Mock <UserService>();

            mockUserService.Setup(us => us.GetUserLoggedIn(token)).Returns(userDTO);

            TransportController transportController = new TransportController(mockTransportService.Object, mockUserService.Object);

            transportController.Request = createTransportControllerRequest();
            this.addTokenHeaderToRequest(transportController.Request, token);

            ResponseMessageResult response = (ResponseMessageResult)transportController.GetAll();

            Assert.AreEqual(HttpStatusCode.OK, response.Response.StatusCode);
        }
예제 #6
0
        private TransportDTO[] PopulateDataObject(string Query)
        {
            TransportDTO[] oTransportData;
            DataSet        ds;

            oTransportData = null;
            ds             = GetDataFromDB(Query);
            if (ds != null && ds.Tables[0].Rows.Count > 0)
            {
                oTransportData = new TransportDTO[ds.Tables[0].Rows.Count];
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    oTransportData[i] = new TransportDTO();
                    if (ds.Tables[0].Rows[i][0] != DBNull.Value)
                    {
                        oTransportData[i].TransportId = Convert.ToInt32(ds.Tables[0].Rows[i][0]);
                    }
                    if (ds.Tables[0].Rows[i][1] != DBNull.Value)
                    {
                        oTransportData[i].TransportName = Convert.ToString(ds.Tables[0].Rows[i][1]);
                    }
                }
            }
            return(oTransportData);
        }
예제 #7
0
        public void GetAllTransportTest()
        {
            TransportDTO transport = new TransportDTO();

            transport.StartDate = DateTime.Now;
            transport.EndDate   = DateTime.Now;
            transport.Batches   = new List <BatchDTO>();
            transport.User      = new UserDTO();

            List <TransportDTO> listTransports = new List <TransportDTO>();

            listTransports.Add(transport);

            var mockTransportDAO = new Mock <TransportDAO>();

            mockTransportDAO.Setup(vs => vs.GetAllTransports()).Returns(listTransports);
            var mockInspectionService = new Mock <InspectionService>();
            var mockBatchService      = new Mock <BatchService>();
            var mockVehicleService    = new Mock <VehicleService>();

            var transportService = new TransportServiceImpl(mockTransportDAO.Object, mockInspectionService.Object, mockBatchService.Object, mockVehicleService.Object);

            List <TransportDTO> resultListTransport = transportService.GetAllTransports();

            Assert.IsNotNull(resultListTransport.Find(t => t.Id == transport.Id));
        }
예제 #8
0
    private void Save()
    {
        if (!base.ValidateIfCommandAllowed(Request.Url.AbsoluteUri, ENums.PageCommand.Add))
        {
            DisplayAlert("You don't have rights to " + ENums.PageCommand.Add.ToString());
            return;
        }

        bool         bActionCompleted = false;
        TransportDTO oTransportData   = new TransportDTO();

        oTransportData.TransportName = txtTransport.Text.Trim();
        TransportMaster oTransportMaster = new TransportMaster();

        bActionCompleted = oTransportMaster.Insert(oTransportData);
        if (bActionCompleted == true)
        {
            base.DisplayAlert("The record has been inserted successfully.");
            txtTransport.Text = "";
            lblStatus.Text    = "Saved";
        }
        else
        {
            lblStatus.Text = "Error Occured while insertion: Please refer to the error log.";
        }
        oTransportData   = null;
        oTransportMaster = null;
    }
예제 #9
0
        public bool Delete(TransportDTO oTransportData)
        {
            string          sProcName;
            DatabaseManager oDB;

            try
            {
                oDB       = new DatabaseManager();
                sProcName = "up_Del_TransportMaster";
                oDB.DbCmd = oDB.GetStoredProcCommand(sProcName);
                oDB.DbDatabase.AddInParameter(oDB.DbCmd, "@TransportId", DbType.Int32, oTransportData.TransportId);
                oDB.ExecuteNonQuery(oDB.DbCmd);
            }
            catch (Exception exp)
            {
                oDB            = null;
                oTransportData = null;
                GF.LogError("clsTransportMaster.Delete", exp.Message);
                return(false);
            }
            finally
            {
                oDB            = null;
                oTransportData = null;
            }
            return(true);
        }
예제 #10
0
        public void UpdateTransportTest()
        {
            DateTime     date1     = DateTime.Now;
            TransportDTO transport = new TransportDTO();

            transport.StartDate = DateTime.Now;
            transport.EndDate   = date1;
            transport.Batches   = this.CreateBatches();
            transport.User      = this.CreateUser();

            TransportDAO transportDAO = new TransportDAOImp();

            transportDAO.AddTransport(transport);

            DateTime date2 = DateTime.Now;

            transport.EndDate = date2;

            transportDAO.UpdateTransport(transport);

            TransportDTO resultTransport = transportDAO.FindTransportById(transport.Id);

            Assert.AreNotEqual(date1, resultTransport.EndDate.Date);
            Assert.AreNotEqual(date2, resultTransport.EndDate.Date);
            Assert.AreEqual(transport.Id, resultTransport.Id);
            Assert.AreEqual(transport.StartDate.Date, resultTransport.StartDate.Date);
            Assert.AreEqual(transport.User.UserName, resultTransport.User.UserName);
            foreach (BatchDTO batch in transport.Batches)
            {
                Assert.IsNotNull(resultTransport.Batches.Find(b => b.Description == batch.Description));
            }
        }
예제 #11
0
        public bool CreateTransport(TransportDTO transportDTO)
        {
            var transportDb = new Transport
            {
                TransportName = transportDTO.TransportName,
            };

            Database.Transports.Create(transportDb);

            return(Database.Save());
        }
예제 #12
0
 public void AddTransport(TransportDTO NewTransport, int AvailibleSeats, int PriceForTicket)
 {
     if (UserLogic.CurrentUser == null || UserLogic.CurrentUser.UserType != DTOs.UserType.Manager)
     {
         throw new WrongUserException("Function availible only for managers");
     }
     for (int i = 1; i <= AvailibleSeats; i++)
     {
         NewTransport.TransportPlaces.Add(new TransportPlaceDTO(NewTransport, i, PriceForTicket));
     }
     UoW.Transports.Add(TransportLogicMapper.Map <TransportDTO, Transport>(NewTransport));
 }
예제 #13
0
        private void Button_Add_Transport_Click(object sender, RoutedEventArgs e)
        {
            TransportDTO newTransport = new TransportDTO();

            EditTransportWindow dialog = new EditTransportWindow(newTransport, false);
            var result = dialog.ShowDialog();

            if (result == true)
            {
                transportService.CreateTransport(newTransport);
                dialog.Close();
                UpdateControls();
            }
        }
예제 #14
0
 public EditTransportWindow(TransportDTO transport, bool isEditMode)
 {
     InitializeComponent();
     Owner             = Application.Current.MainWindow;
     this.transportDTO = transport;
     DataContext       = this.transportDTO;
     if (isEditMode)
     {
         Title = "Изменить тип транспорта";
     }
     else
     {
         Title = "Добавить тип транспорта";
     }
 }
예제 #15
0
        public bool UpdateTransport(int?id, TransportDTO transportDTO)
        {
            if (id == null)
            {
                throw new ValidationException("id was not passed", "");
            }
            var transportDb = Database.Transports.Get(id.Value);

            if (transportDb == null)
            {
                throw new ValidationException("Transport wasn't found", "");
            }
            transportDb.TransportName = transportDTO.TransportName;
            Database.Transports.Update(transportDb);

            return(Database.Save());
        }
예제 #16
0
        public TransportDTO FindTransportById(Guid Id)
        {
            TransportDTO transportDTO = null;

            using (VehicleTrackingDbContext context = new VehicleTrackingDbContext())
            {
                Transport transport = context.Transports
                                      .Include("IdUser")
                                      .Include("Batches")
                                      .Where(t => t.Id == Id)
                                      .ToList().FirstOrDefault();
                if (transport != null)
                {
                    transportDTO = transportMapper.ToDTO(transport);
                }
                return(transportDTO);
            }
        }
예제 #17
0
        public void GetAllTransportTest()
        {
            TransportDTO transportDTO = new TransportDTO();

            TransportDTO transport = new TransportDTO();

            transport.StartDate = DateTime.Now;
            transport.EndDate   = DateTime.Now;
            transport.Batches   = this.CreateBatches();
            transport.User      = this.CreateUser();

            TransportDAO transportDAO = new TransportDAOImp();

            transportDAO.AddTransport(transport);
            List <TransportDTO> transports = transportDAO.GetAllTransports();

            Assert.IsNotNull(transports.Find(t => t.Id == transport.Id));
        }
예제 #18
0
        public List <TransportDTO> GetAllTransports()
        {
            List <TransportDTO> transports = new List <TransportDTO>();

            using (VehicleTrackingDbContext context = new VehicleTrackingDbContext())
            {
                List <Transport> listTransports = context.Transports
                                                  .Include("Batches")
                                                  .Include("IdUser")
                                                  .ToList();

                foreach (Transport transport in listTransports)
                {
                    TransportDTO transportDTO = this.transportMapper.ToDTO(transport);
                    transports.Add(transportDTO);
                }
            }
            return(transports);
        }
예제 #19
0
        public void UpdateTransport(TransportDTO transportDTO)
        {
            Transport transport = null;

            using (VehicleTrackingDbContext context = new VehicleTrackingDbContext())
            {
                var query = from t in context.Transports
                            where t.Id == transportDTO.Id
                            select t;
                transport = query.ToList().FirstOrDefault();

                if (transport != null)
                {
                    transport.EndDate   = transportDTO.EndDate;
                    transport.StartDate = transportDTO.StartDate;
                    context.SaveChanges();
                }
            }
        }
예제 #20
0
    private void Update()
    {
        if (!base.ValidateIfCommandAllowed(Request.Url.AbsoluteUri, ENums.PageCommand.Update))
        {
            return;
        }

        if (ValidateValues() == false)
        {
            return;
        }
        bool bActionCompleted = false;
        int  Id = 0;

        int.TryParse(hfId.Value, out Id);
        if (Id == 0)
        {
            lblStatus.Text = "Please click on edit button again.";
            return;
        }
        TransportDTO oTransportData = new TransportDTO();

        oTransportData.TransportId   = Id;
        oTransportData.TransportName = txtTransport.Text.Trim();
        TransportMaster oTransportMaster = new TransportMaster();

        bActionCompleted = oTransportMaster.Update(oTransportData);
        if (bActionCompleted == true)
        {
            base.DisplayAlert("The record has been updated successfully.");
            txtTransport.Text = "";
            lblStatus.Text    = "Updated";
        }
        else
        {
            base.DisplayAlert("Error Occured while updation: Please refer to the error log.");
            lblStatus.Text = "Error Occured while updation: Please refer to the error log.";
        }

        oTransportData   = null;
        oTransportMaster = null;
    }
예제 #21
0
        private void Button_Edit_Transport_Click(object sender, RoutedEventArgs e)
        {
            if (cBoxTransport.SelectedItem != null)
            {
                TransportDTO newTransport = cBoxTransport.SelectedItem as TransportDTO;

                EditTransportWindow dialog = new EditTransportWindow(newTransport, true);
                var result = dialog.ShowDialog();
                if (result == true)
                {
                    transportService.UpdateTransport(newTransport);
                    dialog.Close();
                    UpdateControls();
                }
            }
            else
            {
                MessageBox.Show("Выберите транспорт для изменения", "Маленькая ошибочка!", MessageBoxButton.OK, MessageBoxImage.Information);
            }
        }
예제 #22
0
        public Guid AddTransport(TransportDTO transportDTO)
        {
            Transport transport = transportMapper.ToEntity(transportDTO);

            using (VehicleTrackingDbContext context = new VehicleTrackingDbContext())
            {
                transport.IdUser  = this.GetUser(context, transport.IdUser.UserName);
                transport.Batches = this.GetBatches(context, transport.Batches);

                context.Users.Attach(transport.IdUser);
                foreach (Batch batch in transport.Batches)
                {
                    context.Batches.Attach(batch);
                }

                context.Transports.Add(transport);
                context.SaveChanges();
            }

            return(transport.Id);
        }
예제 #23
0
 public void FinishTransport(Guid id)
 {
     if (ExistTransport(id))
     {
         TransportDTO transport = this.transportDAO.FindTransportById(id);
         transport.EndDate = DateTime.Now;
         this.transportDAO.UpdateTransport(transport);
         foreach (BatchDTO batch in transport.Batches)
         {
             foreach (string vin in batch.Vehicles)
             {
                 VehicleDTO vehicle = this.vehicleService.FindVehicleByVin(vin);
                 vehicle.Status = StatusCode.Waiting;
                 this.vehicleService.UpdateVehicle(vehicle);
             }
         }
     }
     else
     {
         throw new TransportNotFoundException("Un transporte ingresado no está registrado en el sistema");
     }
 }
예제 #24
0
        public void MapTransportToTransportDTOTest()
        {
            TransportMapper mapper = new TransportMapper();

            Transport transport = new Transport();

            transport.StartDate = DateTime.Now;
            transport.EndDate   = DateTime.Now;
            transport.Batches   = this.CreateBatchesEntities();
            transport.IdUser    = this.CreateUserEntity();

            TransportDTO transportEntity = mapper.ToDTO(transport);

            Assert.AreEqual(transport.Id, transportEntity.Id);
            Assert.AreEqual(transport.StartDate, transportEntity.StartDate);
            Assert.AreEqual(transport.EndDate, transportEntity.EndDate);
            Assert.AreEqual(transport.IdUser.UserName, transportEntity.User.UserName);
            foreach (Batch batch in transport.Batches)
            {
                Assert.IsNotNull(transportEntity.Batches.Find(b => b.Description == batch.Description));
            }
        }
예제 #25
0
        public void StartTransport(List <Guid> batchesId, UserDTO user)
        {
            bool existBatches = ExistBatches(batchesId);

            if (existBatches)
            {
                bool batchesAreReady = BatchesAreReady(batchesId);
                if (batchesAreReady)
                {
                    List <BatchDTO> listBatches = new List <BatchDTO>();
                    foreach (Guid id in batchesId)
                    {
                        BatchDTO batch = batchService.FindBatchById(id);
                        foreach (string vin in batch.Vehicles)
                        {
                            VehicleDTO vehicleDTO = vehicleService.FindVehicleByVin(vin);
                            vehicleDTO.Status = StatusCode.InTransit;
                            vehicleService.UpdateVehicle(vehicleDTO);
                        }
                        listBatches.Add(batch);
                    }
                    TransportDTO transport = new TransportDTO();
                    transport.Batches   = listBatches;
                    transport.StartDate = DateTime.Now;
                    transport.User      = user;
                    this.CreateTransport(transport);
                }
                else
                {
                    throw new BatchIsNotReadyException("Hay vehículos en el lote que aún no se pueden transportar");
                }
            }
            else
            {
                throw new BatchNotFoundException("Un lote ingresado no está registrado en el sistema");
            }
        }
예제 #26
0
        public TransportDTO ToDTO(Transport transport)
        {
            UserMapper  userMapper  = new UserMapper(new RoleDAOImp());
            BatchMapper batchMapper = new BatchMapper();

            TransportDTO transportDTO = new TransportDTO();

            transportDTO.Id        = transport.Id;
            transportDTO.StartDate = transport.StartDate;
            transportDTO.EndDate   = transport.EndDate;
            transportDTO.User      = userMapper.ToDTO(transport.IdUser);

            List <BatchDTO> batchesDTO = new List <BatchDTO>();

            foreach (Batch batch in transport.Batches)
            {
                BatchDTO batchDTO = batchMapper.ToDTO(batch);
                batchesDTO.Add(batchDTO);
            }

            transportDTO.Batches = batchesDTO;

            return(transportDTO);
        }
예제 #27
0
        public Transport ToEntity(TransportDTO transportDTO)
        {
            UserMapper  userMapper  = new UserMapper(new RoleDAOImp());
            BatchMapper batchMapper = new BatchMapper();

            Transport transport = new Transport();

            transport.Id        = transportDTO.Id;
            transport.StartDate = transportDTO.StartDate;
            transport.EndDate   = transportDTO.EndDate;
            transport.IdUser    = userMapper.ToEntity(transportDTO.User);

            List <Batch> batches = new List <Batch>();

            foreach (BatchDTO batchDTO in transportDTO.Batches)
            {
                Batch batch = batchMapper.ToEntity(batchDTO);
                batches.Add(batch);
            }

            transport.Batches = batches;

            return(transport);
        }
예제 #28
0
 public void UpdateTransport(TransportDTO transportDTO)
 {
     dataBase.Transports.Update(mapperDTOToEntity.Map <Transport>(transportDTO));
     dataBase.Save();
 }
예제 #29
0
 public Transport TransportDTOToTransport(TransportDTO TransportDTO)
 {
     return(new Transport());
 }
예제 #30
0
 public Guid CreateTransport(TransportDTO transport)
 {
     return(transportDAO.AddTransport(transport));
 }