public void TestCreateMaintenanceWorkOrderValidInput()
        {
            //Arrange
            MaintenanceWorkOrder newMaintenanceWorkOrder = new MaintenanceWorkOrder()
            {
                MaintenanceTypeID = "Plumbing", DateRequested = DateTime.Now, DateCompleted = DateTime.Now.AddDays(1), RequestingEmployeeID = 100000, WorkingEmployeeID = 100001, Description = "Created In Unit Test: TestCreateMaintenanceWorkOrderValidInput()", Comments = "Test Comment", MaintenanceStatusID = "Open", ResortPropertyID = 1, Complete = true
            };

            //Act
            _maintenanceWorkOrderManager.AddMaintenanceWorkOrder(newMaintenanceWorkOrder);

            //Assert
            //Updates the list of MaintenanceWorkOrder
            _maintenanceWorkOrders = _maintenanceWorkOrderManager.RetrieveAllMaintenanceWorkOrders();

            //Checks to see if the new MaintenanceWorkOrder is in the updated list of MaintenanceWorkOrders
            Assert.IsNotNull(_maintenanceWorkOrders.Find(x => x.MaintenanceTypeID == newMaintenanceWorkOrder.MaintenanceTypeID &&
                                                         x.MaintenanceStatusID == newMaintenanceWorkOrder.MaintenanceStatusID &&
                                                         x.DateRequested.Day == newMaintenanceWorkOrder.DateRequested.Day &&
                                                         x.RequestingEmployeeID == newMaintenanceWorkOrder.RequestingEmployeeID &&
                                                         x.WorkingEmployeeID == newMaintenanceWorkOrder.WorkingEmployeeID &&
                                                         x.Description == newMaintenanceWorkOrder.Description &&
                                                         x.Comments == newMaintenanceWorkOrder.Comments &&
                                                         x.ResortPropertyID == newMaintenanceWorkOrder.ResortPropertyID));
        }
        /// <summary>
        /// Author: Dalton Cleveland
        /// Created : 3/07/2019
        /// This will update an existing work order or throw a new ArgumentException
        /// </summary>
        public void UpdateMaintenanceWorkOrder(MaintenanceWorkOrder oldMaintenanceWorkOrder, MaintenanceWorkOrder newMaintenanceWorkOrder)
        {
            bool updated = false;

            foreach (var wo in _maintenanceWorkOrders)
            {
                if (wo.MaintenanceWorkOrderID == oldMaintenanceWorkOrder.MaintenanceWorkOrderID)
                {
                    wo.MaintenanceTypeID    = newMaintenanceWorkOrder.MaintenanceTypeID;
                    wo.MaintenanceStatusID  = newMaintenanceWorkOrder.MaintenanceStatusID;
                    wo.DateRequested        = newMaintenanceWorkOrder.DateRequested;
                    wo.DateCompleted        = newMaintenanceWorkOrder.DateCompleted;
                    wo.RequestingEmployeeID = newMaintenanceWorkOrder.RequestingEmployeeID;
                    wo.WorkingEmployeeID    = newMaintenanceWorkOrder.WorkingEmployeeID;
                    wo.Description          = newMaintenanceWorkOrder.Description;
                    wo.Comments             = newMaintenanceWorkOrder.Comments;
                    wo.ResortPropertyID     = newMaintenanceWorkOrder.ResortPropertyID;
                    wo.Complete             = newMaintenanceWorkOrder.Complete;
                    updated = true;
                    break;
                }
            }
            if (!updated)
            {
                throw new ArgumentException("No Work Order was found to update");
            }
        }
 /// <summary>
 /// Author: Dalton Cleveland
 /// Created : 2/21/2019
 /// This Constructor requires a MaintenanceWorkOrder and an instance of the IRMaintenanceWorkOrderManager
 /// </summary>
 public DeactivateMaintenanceWorkOrder(MaintenanceWorkOrder maintenanceWorkOrder, IMaintenanceWorkOrderManager maintenanceWorkOrderManager)
 {
     InitializeComponent();
     _maintenanceWorkOrderManager = maintenanceWorkOrderManager;
     _maintenanceWorkOrder        = maintenanceWorkOrder;
     txtTitleContent.Text         = "Are you sure you want to delete this Maintenance Work Order?";
     txtBodyContent.Text          = "Deleting this Item will remove it from our system. If you are unsure whether you should delete this please click cancel and ask your superior";
 }
        /// <summary>
        /// Author: Dalton Cleveland
        /// Created : 2/21/2019
        /// This constructor is used for Creating a MaintenanceWorkOrder
        /// Initializes connections to our MaintenanceWorkOrderManager
        /// </summary>
        public CreateMaintenanceWorkOrder(IMaintenanceWorkOrderManager maintenanceWorkOrderManager)
        {
            InitializeComponent();
            _maintenanceTypeManager       = new MaintenanceTypeManagerMSSQL();
            _maintenanceStatusTypeManager = new MaintenanceStatusTypeManagerMSSQL();
            _maintenanceWorkOrderManager  = maintenanceWorkOrderManager;

            try
            {
                _maintenanceTypes = _maintenanceTypeManager.RetrieveAllMaintenanceTypes();
            }
            catch (Exception ex)
            {
                SetError(ex.Message);
            }
            List <string> list1 = new List <string>();

            if (_maintenanceTypes != null)
            {
                foreach (var item in _maintenanceTypes)
                {
                    list1.Add(item.MaintenanceTypeID);
                }
            }
            cboMaintenanceTypeID.ItemsSource = list1;

            try
            {
                _maintenanceStatusTypes = _maintenanceStatusTypeManager.RetrieveAllMaintenanceStatusTypes();
            }
            catch (Exception ex)
            {
                SetError(ex.Message);
            }
            List <string> list2 = new List <string>();

            if (_maintenanceStatusTypes != null)
            {
                foreach (var item in _maintenanceStatusTypes)
                {
                    list2.Add(item.MaintenanceStatusID);
                }
            }
            cboStatus.ItemsSource = list2;

            chkComplete.IsEnabled     = false;
            chkComplete.IsChecked     = true;
            dpDateCompleted.IsEnabled = false;
            dpDateCompleted.Equals(null);
            dpDateRequested.IsEnabled = false;
            dpDateRequested.Equals(DateTime.Now);
            cboStatus.SelectedItem = "Open";
            cboStatus.IsEnabled    = false;
            txtComments.IsEnabled  = false;
            txtComments.Equals(null);
            _existingMaintenanceWorkOrder = null;
        }
 public ActionResult Create(MaintenanceWorkOrder workOrder)
 {
     workOrder.CreatedDateTime     = DateTime.Now;
     workOrder.LastStatusDateTime  = DateTime.Now;
     workOrder.MaintenanceStatusId = 0;
     _context.MaintenanceWorkOrders.Add(workOrder);
     _context.SaveChanges();
     return(RedirectToAction("Index", "Maintenance"));
 }
        public void TestUpdateMaintenanceWorkOrderInValidResortPropertyID()
        {
            //Arrange
            MaintenanceWorkOrder newMaintenanceWorkOrder = new MaintenanceWorkOrder();

            setMaintenanceWorkOrders(_maintenanceWorkOrders[0], newMaintenanceWorkOrder);
            newMaintenanceWorkOrder.ResortPropertyID = -1;
            //Act
            _maintenanceWorkOrderManager.EditMaintenanceWorkOrder(_maintenanceWorkOrders[0], newMaintenanceWorkOrder);
        }
        public void TestUpdateMaintenanceWorkOrderInValidWorkingEmployeeID()
        {
            //Arrange
            MaintenanceWorkOrder newMaintenanceWorkOrder = new MaintenanceWorkOrder();

            setMaintenanceWorkOrders(_maintenanceWorkOrders[0], newMaintenanceWorkOrder);
            newMaintenanceWorkOrder.WorkingEmployeeID = -1;
            //Act
            _maintenanceWorkOrderManager.EditMaintenanceWorkOrder(_maintenanceWorkOrders[0], newMaintenanceWorkOrder);
        }
        /// <summary>
        /// Author: Dalton Cleveland
        /// Created : 3/07/2019
        /// This will search for a work order with a matching work order ID from our mock data
        /// </summary>
        public MaintenanceWorkOrder RetrieveMaintenanceWorkOrder(int MaintenanceWorkOrderID)
        {
            MaintenanceWorkOrder w = new MaintenanceWorkOrder();

            w = _maintenanceWorkOrders.Find(x => x.MaintenanceWorkOrderID == MaintenanceWorkOrderID);
            if (w == null)
            {
                throw new ArgumentException("MaintenanceWorkOrderID did not match any MaintenanceWorkOrders in our System");
            }

            return(w);
        }
        public void TestRetrieveMaintenanceWorkOrderInValidInput()
        {
            //Arrange
            MaintenanceWorkOrder newMaintenanceWorkOrder = new MaintenanceWorkOrder();
            int invalidMaintenanceWorkOrderID            = -1;

            //Act
            newMaintenanceWorkOrder = _maintenanceWorkOrderManager.RetrieveMaintenanceWorkOrder(invalidMaintenanceWorkOrderID);

            //Assert
            //Assert.AreEqual(newMaintenanceWorkOrder.MaintenanceWorkOrderID, 0);
        }
        public void TestUpdateMaintenanceWorkOrderInValidDescription()
        {
            //Arrange
            MaintenanceWorkOrder newMaintenanceWorkOrder = new MaintenanceWorkOrder();

            setMaintenanceWorkOrders(_maintenanceWorkOrders[0], newMaintenanceWorkOrder);
            string newDescription = "This test is updating the description in TestUpdateMaintenanceWorkOrderValidDescription()" + createLongString(1001);

            newMaintenanceWorkOrder.Description = newDescription;
            //Act
            _maintenanceWorkOrderManager.EditMaintenanceWorkOrder(_maintenanceWorkOrders[0], newMaintenanceWorkOrder);
        }
        public void TestCreateMaintenanceWorkOrderInValidInputMaintenanceResortID()
        {
            //Arrange
            MaintenanceWorkOrder newMaintenanceWorkOrder = new MaintenanceWorkOrder()
            {
                MaintenanceTypeID = "Plumbing", DateRequested = DateTime.Now, DateCompleted = DateTime.Now.AddDays(1), RequestingEmployeeID = 100000, WorkingEmployeeID = 100000, Description = "Created In Unit Test: TestCreateMaintenanceWorkOrderInValidInputMaintenanceResortID()", Comments = "Test Comment", MaintenanceStatusID = "Open", ResortPropertyID = -1, Complete = true
            };

            //Act
            //Since Status is invalid, this should throw an Exception
            _maintenanceWorkOrderManager.AddMaintenanceWorkOrder(newMaintenanceWorkOrder);
        }
 private void setMaintenanceWorkOrders(MaintenanceWorkOrder oldMaintenanceWorkOrder, MaintenanceWorkOrder newMaintenanceWorkOrder)
 {
     newMaintenanceWorkOrder.MaintenanceWorkOrderID = oldMaintenanceWorkOrder.MaintenanceWorkOrderID;
     newMaintenanceWorkOrder.MaintenanceTypeID      = oldMaintenanceWorkOrder.MaintenanceTypeID;
     newMaintenanceWorkOrder.MaintenanceStatusID    = oldMaintenanceWorkOrder.MaintenanceStatusID;
     newMaintenanceWorkOrder.DateRequested          = oldMaintenanceWorkOrder.DateRequested;
     newMaintenanceWorkOrder.DateCompleted          = oldMaintenanceWorkOrder.DateCompleted;
     newMaintenanceWorkOrder.RequestingEmployeeID   = oldMaintenanceWorkOrder.RequestingEmployeeID;
     newMaintenanceWorkOrder.WorkingEmployeeID      = oldMaintenanceWorkOrder.WorkingEmployeeID;
     newMaintenanceWorkOrder.Description            = oldMaintenanceWorkOrder.Description;
     newMaintenanceWorkOrder.Comments         = oldMaintenanceWorkOrder.Comments;
     newMaintenanceWorkOrder.ResortPropertyID = oldMaintenanceWorkOrder.ResortPropertyID;
     newMaintenanceWorkOrder.Complete         = oldMaintenanceWorkOrder.Complete;
 }
示例#13
0
        /// <summary>
        /// Author: Dalton Cleveland
        /// Created : 2/21/2019
        /// Update Work Order will attempt to update the Work Order from our MSSQL database
        /// </summary>
        public void UpdateMaintenanceWorkOrder(MaintenanceWorkOrder oldMaintenanceWorkOrder, MaintenanceWorkOrder newMaintenanceWorkOrder)
        {
            // get a connection
            var conn = DBConnection.GetDbConnection();

            // command text
            string cmdText1 = @"sp_update_work_order";

            // command objects
            var cmd1 = new SqlCommand(cmdText1, conn);

            // set the command type
            cmd1.CommandType = CommandType.StoredProcedure;

            // parameters
            cmd1.Parameters.AddWithValue("@MaintenanceWorkOrderID", oldMaintenanceWorkOrder.MaintenanceWorkOrderID);
            cmd1.Parameters.AddWithValue("@oldDateRequested", oldMaintenanceWorkOrder.DateRequested);
            cmd1.Parameters.AddWithValue("@oldMaintenanceTypeID", oldMaintenanceWorkOrder.MaintenanceTypeID);
            cmd1.Parameters.AddWithValue("@oldRequestingEmployeeID", oldMaintenanceWorkOrder.RequestingEmployeeID);
            cmd1.Parameters.AddWithValue("@oldWorkingEmployeeID", oldMaintenanceWorkOrder.WorkingEmployeeID);
            cmd1.Parameters.AddWithValue("@oldDescription", oldMaintenanceWorkOrder.Description);
            cmd1.Parameters.AddWithValue("@oldMaintenanceStatusID", oldMaintenanceWorkOrder.MaintenanceStatusID);
            cmd1.Parameters.AddWithValue("@oldResortPropertyID", oldMaintenanceWorkOrder.ResortPropertyID);
            cmd1.Parameters.AddWithValue("@oldComplete", oldMaintenanceWorkOrder.Complete);

            cmd1.Parameters.AddWithValue("@newMaintenanceTypeID", newMaintenanceWorkOrder.MaintenanceTypeID);
            cmd1.Parameters.AddWithValue("@newRequestingEmployeeID", newMaintenanceWorkOrder.RequestingEmployeeID);
            cmd1.Parameters.AddWithValue("@newWorkingEmployeeID", newMaintenanceWorkOrder.WorkingEmployeeID);
            cmd1.Parameters.AddWithValue("@newDescription", newMaintenanceWorkOrder.Description);
            cmd1.Parameters.AddWithValue("@newComments", newMaintenanceWorkOrder.Comments);
            cmd1.Parameters.AddWithValue("@newMaintenanceStatusID", newMaintenanceWorkOrder.MaintenanceStatusID);
            cmd1.Parameters.AddWithValue("@newResortPropertyID", newMaintenanceWorkOrder.ResortPropertyID);
            cmd1.Parameters.AddWithValue("@newComplete", newMaintenanceWorkOrder.Complete);
            try
            {
                // open the connection
                conn.Open();
                // execute the command
                cmd1.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }
        }
        public void TestUpdateMaintenanceWorkOrderValidDescription()
        {
            //Arrange
            MaintenanceWorkOrder newMaintenanceWorkOrder = new MaintenanceWorkOrder();

            setMaintenanceWorkOrders(_maintenanceWorkOrders[0], newMaintenanceWorkOrder);
            string newDescription = "This test is updating the description in TestUpdateMaintenanceWorkOrderValidDescription()";

            newMaintenanceWorkOrder.Description = newDescription;
            //Act
            _maintenanceWorkOrderManager.EditMaintenanceWorkOrder(_maintenanceWorkOrders[0], newMaintenanceWorkOrder);
            //Assert
            _maintenanceWorkOrders = _maintenanceWorkOrderManager.RetrieveAllMaintenanceWorkOrders();
            Assert.AreEqual(_maintenanceWorkOrderManager.RetrieveMaintenanceWorkOrder(_maintenanceWorkOrders[0].MaintenanceWorkOrderID).Description, newDescription);
        }
        /// <summary author="Dalton Cleveland" created="2019/02/21">
        /// Returns a MaintenanceWorkOrder from a MaintenanceWorkOrderAccessor or throws an error if there was a problem
        /// </summary>
        public MaintenanceWorkOrder RetrieveMaintenanceWorkOrder(int MaintenanceWorkOrderID)
        {
            MaintenanceWorkOrder maintenanceWorkOrder = new MaintenanceWorkOrder();

            try
            {
                maintenanceWorkOrder = _maintenanceWorkOrderAccessor.RetrieveMaintenanceWorkOrder(MaintenanceWorkOrderID);
            }
            catch (Exception ex)
            {
                ExceptionLogManager.getInstance().LogException(ex);
                throw new ArgumentException("MaintenanceWorkOrderID did not match any MaintenanceWorkOrders in our System");
            }
            return(maintenanceWorkOrder);
        }
 /// <summary author="Dalton Cleveland" created="2019/02/21">
 /// Sends Existing MaintenanceWorkOrder data along with the new MaintenanceWorkOrder data to MaintenanceWorkOrder Accessor. Returns an error if update fails
 /// </summary>
 public void EditMaintenanceWorkOrder(MaintenanceWorkOrder oldMaintenanceWorkOrder, MaintenanceWorkOrder newMaintenanceWorkOrder)
 {
     try
     {
         if (!newMaintenanceWorkOrder.IsValid())
         {
             throw new ArgumentException("Data for this new MaintenanceWorkOrder is not valid");
         }
         _maintenanceWorkOrderAccessor.UpdateMaintenanceWorkOrder(oldMaintenanceWorkOrder, newMaintenanceWorkOrder);
     }
     catch (Exception ex)
     {
         ExceptionLogManager.getInstance().LogException(ex);
         throw ex;
     }
 }
        /// <summary>
        /// Author: Dalton Cleveland
        /// Created : 2/21/2019
        /// This constructor is used for Reading and Updating a MaintenanceWorkOrder
        /// </summary>
        public CreateMaintenanceWorkOrder(MaintenanceWorkOrder existingMaintenanceWorkOrder, IMaintenanceWorkOrderManager maintenanceWorkOrderManager)
        {
            InitializeComponent();
            _maintenanceWorkOrderManager  = maintenanceWorkOrderManager;
            _maintenanceTypeManager       = new MaintenanceTypeManagerMSSQL();
            _maintenanceStatusTypeManager = new MaintenanceStatusTypeManagerMSSQL();


            try
            {
                _maintenanceTypes = _maintenanceTypeManager.RetrieveAllMaintenanceTypes();
            }
            catch (Exception ex)
            {
                SetError(ex.Message);
            }
            List <string> list1 = new List <string>();

            foreach (var item in _maintenanceTypes)
            {
                list1.Add(item.MaintenanceTypeID);
            }
            cboMaintenanceTypeID.ItemsSource = list1;

            try
            {
                _maintenanceStatusTypes = _maintenanceStatusTypeManager.RetrieveAllMaintenanceStatusTypes();
            }
            catch (Exception ex)
            {
                SetError(ex.Message);
            }

            List <string> list2 = new List <string>();

            foreach (var item in _maintenanceStatusTypes)
            {
                list2.Add(item.MaintenanceStatusID);
            }
            cboStatus.ItemsSource     = list2;
            dpDateCompleted.IsEnabled = false;
            dpDateCompleted.Equals(null);
            dpDateRequested.IsEnabled = false;
            dpDateRequested.Equals(DateTime.Now);
            _existingMaintenanceWorkOrder = existingMaintenanceWorkOrder;
            populateFormReadOnly();
        }
 /// <summary author="Dalton Cleveland" created="2019/02/21">
 /// Passes along a MaintenanceWorkOrder object to our MaintenanceWorkOrderAccessorMSSQL to be stored in our database
 public void AddMaintenanceWorkOrder(MaintenanceWorkOrder newMaintenanceWorkOrder)
 {
     try
     {
         //Double Check the MaintenanceWorkOrder is Valid
         if (!newMaintenanceWorkOrder.IsValid())
         {
             throw new ArgumentException("Data for this MaintenanceWorkOrder is not valid");
         }
         _maintenanceWorkOrderAccessor.CreateMaintenanceWorkOrder(newMaintenanceWorkOrder);
     }
     catch (Exception ex)
     {
         ExceptionLogManager.getInstance().LogException(ex);
         throw ex;
     }
 }
 /// <summary>
 /// Author: Dalton Cleveland
 /// Created : 2/21/2019
 /// The function which runs when the view MaintenanceWorkOrder button is clicked.
 /// It will launch the CreateMaintenanceWorkOrder window in view mode with the option of updating
 /// </summary>
 private void btnViewMaintenanceWorkOrder_Click(object sender, RoutedEventArgs e)
 {
     if (dgMaintenanceWorkOrders.SelectedIndex != -1)
     {
         MaintenanceWorkOrder selectedMaintenanceWorkOrder = new MaintenanceWorkOrder();
         try
         {
             selectedMaintenanceWorkOrder = _maintenanceWorkOrderManager.RetrieveMaintenanceWorkOrder(((MaintenanceWorkOrder)dgMaintenanceWorkOrders.SelectedItem).MaintenanceWorkOrderID);
             var readUpdateMaintenanceWorkOrder = new CreateMaintenanceWorkOrder(selectedMaintenanceWorkOrder, _maintenanceWorkOrderManager);
             readUpdateMaintenanceWorkOrder.ShowDialog();
             refreshAllMaintenanceWorkOrders();
             populateMaintenanceWorkOrders();
         }
         catch (Exception ex)
         {
             MessageBox.Show("Unable to find that Maintenance Work Order\n" + ex.Message);
         }
     }
 }
示例#20
0
        private void selectMaintenanceTicket()
        {
            MaintenanceWorkOrder ticket = (MaintenanceWorkOrder)dgBuildingMaintenance.SelectedItem;

            var detailForm  = new CreateMaintenanceWorkOrder(ticket, maintenanceManager);
            var formUpdated = detailForm.ShowDialog();

            if (formUpdated == true)
            {
                try
                {
                    setUpMaintainanceTab();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        public void TestRetrieveMaintenanceWorkOrderValidInput()
        {
            //Arrange
            MaintenanceWorkOrder newMaintenanceWorkOrder = new MaintenanceWorkOrder();

            //Act
            newMaintenanceWorkOrder = _maintenanceWorkOrderManager.RetrieveMaintenanceWorkOrder(_maintenanceWorkOrders[0].MaintenanceWorkOrderID);

            //Assert
            Assert.AreEqual(newMaintenanceWorkOrder.MaintenanceWorkOrderID, _maintenanceWorkOrders[0].MaintenanceWorkOrderID);
            Assert.AreEqual(newMaintenanceWorkOrder.MaintenanceTypeID, _maintenanceWorkOrders[0].MaintenanceTypeID);
            Assert.AreEqual(newMaintenanceWorkOrder.MaintenanceStatusID, _maintenanceWorkOrders[0].MaintenanceStatusID);
            Assert.AreEqual(newMaintenanceWorkOrder.DateRequested.Day, _maintenanceWorkOrders[0].DateRequested.Day);
            Assert.AreEqual(newMaintenanceWorkOrder.RequestingEmployeeID, _maintenanceWorkOrders[0].RequestingEmployeeID);
            Assert.AreEqual(newMaintenanceWorkOrder.WorkingEmployeeID, _maintenanceWorkOrders[0].WorkingEmployeeID);
            Assert.AreEqual(newMaintenanceWorkOrder.Description, _maintenanceWorkOrders[0].Description);
            Assert.AreEqual(newMaintenanceWorkOrder.Comments, _maintenanceWorkOrders[0].Comments);
            Assert.AreEqual(newMaintenanceWorkOrder.ResortPropertyID, _maintenanceWorkOrders[0].ResortPropertyID);
        }
示例#22
0
        /// <summary>
        /// Author: Dalton Cleveland
        /// Created : 02/14/2019
        /// Creates a Work Order for the MaintenanceWorkOrder Table in our Microsoft SQL Server
        /// </summary>
        public void CreateMaintenanceWorkOrder(MaintenanceWorkOrder newMaintenanceWorkOrder)
        {
            // get a connection
            var conn = DBConnection.GetDbConnection();

            // command text
            string cmdText1 = @"sp_create_work_order";

            // command objects
            var cmd1 = new SqlCommand(cmdText1, conn);

            // set the command type
            cmd1.CommandType = CommandType.StoredProcedure;

            // parameters
            //We do not have a MaintenanceWorkOrderID since we have not created the Work Order in our database yet
            cmd1.Parameters.AddWithValue("@MaintenanceTypeID", newMaintenanceWorkOrder.MaintenanceTypeID);
            cmd1.Parameters.AddWithValue("@DateRequested", DateTime.Now);
            cmd1.Parameters.AddWithValue("@RequestingEmployeeID", newMaintenanceWorkOrder.RequestingEmployeeID);
            cmd1.Parameters.AddWithValue("@WorkingEmployeeID", newMaintenanceWorkOrder.WorkingEmployeeID);
            cmd1.Parameters.AddWithValue("@Description", newMaintenanceWorkOrder.Description);
            cmd1.Parameters.AddWithValue("@MaintenanceStatusID", newMaintenanceWorkOrder.MaintenanceStatusID);
            cmd1.Parameters.AddWithValue("@ResortPropertyID", newMaintenanceWorkOrder.ResortPropertyID);

            try
            {
                // open the connection
                conn.Open();
                // execute the command
                cmd1.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }
        }
示例#23
0
        /// <summary>
        /// Author: Dalton Cleveland
        /// Created : 2/21/2019
        /// Retrieve All Work Orders will attempt to select and return every single Work Order from our MSSQL database in the form of a List
        /// </summary>
        public MaintenanceWorkOrder RetrieveMaintenanceWorkOrder(int MaintenanceWorkOrderID)
        {
            MaintenanceWorkOrder maintenanceWorkOrder = new MaintenanceWorkOrder();

            // get a connection
            var conn = DBConnection.GetDbConnection();

            // command text
            string cmdText = @"sp_select_work_order_by_id";

            // command objects
            var cmd1 = new SqlCommand(cmdText, conn);

            // set the command type
            cmd1.CommandType = CommandType.StoredProcedure;

            // parameters
            //We do not have a WorkOrderID since we have not created the WorkOrder in our database yet
            cmd1.Parameters.AddWithValue("@MaintenanceWorkOrderID", MaintenanceWorkOrderID);

            try
            {
                conn.Open();
                SqlDataReader reader = cmd1.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        maintenanceWorkOrder.MaintenanceWorkOrderID = reader.GetInt32(0);
                        maintenanceWorkOrder.MaintenanceTypeID      = reader.GetString(1);
                        maintenanceWorkOrder.DateRequested          = reader.GetDateTime(2);
                        if (reader.IsDBNull(3))
                        {
                            maintenanceWorkOrder.DateCompleted = null;
                        }
                        else
                        {
                            maintenanceWorkOrder.DateCompleted = reader.GetDateTime(3);
                        }
                        maintenanceWorkOrder.RequestingEmployeeID = reader.GetInt32(4);
                        maintenanceWorkOrder.WorkingEmployeeID    = reader.GetInt32(5);
                        maintenanceWorkOrder.Description          = reader.GetString(6);
                        if (reader.IsDBNull(7))
                        {
                            maintenanceWorkOrder.Comments = null;
                        }
                        else
                        {
                            maintenanceWorkOrder.Comments = reader.GetString(7);
                        }
                        maintenanceWorkOrder.MaintenanceStatusID = reader.GetString(8);
                        maintenanceWorkOrder.ResortPropertyID    = reader.GetInt32(9);
                        maintenanceWorkOrder.Complete            = reader.GetBoolean(10);
                        break;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }
            return(maintenanceWorkOrder);
        }
 /// <summary>
 /// Author: Dalton Cleveland
 /// Created : 3/07/2019
 /// This will create a work order using the data provided in the newWorkOrder
 /// </summary>
 public void CreateMaintenanceWorkOrder(MaintenanceWorkOrder newMaintenanceWorkOrder)
 {
     _maintenanceWorkOrders.Add(newMaintenanceWorkOrder);
 }
        public ActionResult MakeRequest(PartsRequestViewModel formData)
        {
            //get information from form here:
            string value;
            int    keyNumber;

            string[] keySplit;
            bool     refresh = false;
            List <RequestLineStruct> requestLines = new List <RequestLineStruct>();
            RequestLineStruct        requestLine  = new RequestLineStruct()
            {
                Number = 0, Note = "", PartId = 0
            };

            foreach (var key in Request.Form.AllKeys)
            {
                value = Request.Form.Get(key);
                if (key == "refresh")
                {
                    refresh = true;
                    System.Diagnostics.Debug.WriteLine("Refresh");
                }
                else if (key == "place")
                {
                    System.Diagnostics.Debug.WriteLine("Place");
                }
                else if ((key.StartsWith("RequestLine.") && (value != "0")) ||
                         (key.StartsWith("Note.") && (requestLine.Note == null)) ||
                         (key.StartsWith("Part.") && (value != "0")) ||
                         (key.StartsWith("PartId.")))
                {
                    keySplit  = key.Split('.');
                    keyNumber = Int32.Parse(keySplit[1]);
                    if (keySplit[0] == "RequestLine") // Take advantage of always having the order of requestLine, Note and PartId in same order...
                    {
                        if (value != "0")
                        {
                            requestLine.Number = Int32.Parse(value);
                            requestLine.PartId = null;
                            requestLine.Note   = null;
                        }
                        else
                        {
                            requestLine.Number = 0;
                            requestLine.PartId = 0;
                            requestLine.Note   = "";
                        }
                    }
                    else if (keySplit[0] == "Note" && requestLine.Note == null)
                    {
                        requestLine.Note = value ?? "";
                    }
                    else if (keySplit[0] == "PartId" && requestLine.PartId == null)
                    {
                        requestLine.PartId = Int32.Parse(value);
                        requestLines.Add(requestLine);
                    }
                    else if (keySplit[0] == "Part" && value != "0")
                    {
                        requestLine.PartId = keyNumber;
                        requestLine.Number = Int32.Parse(value);
                        requestLine.Note   = "";
                        requestLines.Add(requestLine);
                    }
                }
            }
            List <int>    partIdList = new List <int>();
            List <int>    numberList = new List <int>();
            List <string> noteList   = new List <string>();
            List <StockRoomRequestLine> requestLineList = new List <StockRoomRequestLine>();
            StockRoomRequestLine        requestLineLine;

            var    manufacturerPart = _context.ManufacturerParts.ToList();
            object stockRoomRequest = null;

            if (formData != null && formData.PartRequestNumber != null)
            {
                stockRoomRequest = _context.StockRoomRequests.Single(r => r.Id == (int)formData.PartRequestNumber);
            }


            for (int i = 0; i < requestLines.Count; i++)
            {
                requestLine     = requestLines[i];
                requestLineLine = new StockRoomRequestLine();
                requestLineLine.ManufacturerPart   = manufacturerPart.Single(p => p.Id == requestLine.PartId);
                requestLineLine.ManufacturerPartId = requestLineLine.ManufacturerPart.Id;
                requestLineLine.Description        = requestLine.Note;
                requestLineLine.Number             = requestLine.Number;
                requestLineLine.Id = i;
                if (stockRoomRequest != null)
                {
                    requestLineLine.StockRoomRequest   = (StockRoomRequest)stockRoomRequest;
                    requestLineLine.StockRoomRequestId = requestLineLine.StockRoomRequest.Id;
                }

                requestLineList.Add(requestLineLine);
            }
            if (refresh)
            {
                JobPlanViewModel buildModel = new JobPlanViewModel()
                {
                    WorkOrderNumber = formData.WorkOrderNumber,
                    JobPlanId       = formData.JobPlanNumber,
                };
                var viewModel = BuildPartsViewModel(buildModel);
                viewModel.RequestLines = requestLineList;
                if (formData.PartRequestNumber != null)
                {
                    viewModel.PartRequestNumber = formData.PartRequestNumber;
                }
                return(View("PartsRequest", viewModel));
            }
            else
            {
                if (formData != null && formData.PartRequestNumber != null) // save changed record
                {
                    int requestId             = (int)formData.PartRequestNumber;
                    var stockRoomRequestLines = _context.StockroomRequestLines;
                    var requestRecords        = stockRoomRequestLines.Where(r => r.StockRoomRequestId == requestId).ToList();
                    StockRoomRequestLine record;
                    foreach (var line in requestLineList) // Change or add first
                    {
                        record = requestRecords.SingleOrDefault(r => r.ManufacturerPartId == line.ManufacturerPartId);
                        if (record != null)
                        {
                            record.Description = line.Description;
                            record.Number      = line.Number;
                        }
                        else
                        {
                            stockRoomRequestLines.Add(line);
                        }
                    }
                    _context.SaveChanges();
                    bool done = false;
                    while (!done)
                    {
                        requestRecords = stockRoomRequestLines.Where(r => r.StockRoomRequestId == requestId).ToList();
                        bool doDelete;
                        foreach (var line in requestRecords) // Delete ones no longer needed
                        {
                            doDelete = true;
                            done     = true;
                            foreach (var request in requestLineList)
                            {
                                if (request.ManufacturerPartId == line.ManufacturerPartId)
                                {
                                    doDelete = false;
                                    break;
                                }
                            }
                            if (doDelete)
                            {
                                var itemToRemove = _context.StockroomRequestLines.SingleOrDefault(x => x.Id == line.Id);
                                if (itemToRemove != null)
                                {
                                    _context.StockroomRequestLines.Remove(itemToRemove);
                                    _context.SaveChanges();
                                }
                                System.Diagnostics.Debug.WriteLine("Delete Record");
                                done = false;
                                break;
                            }
                        }
                    }
                }
                else // new record
                {
                    // create a request first and get the id for it.
                    int workOrderNumber;
                    MaintenanceWorkOrder workOrder       = null;
                    Worker           worker              = null;
                    var              workers             = _context.Workers.ToList();
                    StockRoomRequest newStockRoomRequest = new StockRoomRequest()
                    {
                        StockRoomRequestStatus = _context.StockRoomRequestStatuses.Single(i => i.Id == 0),
                        Requested = DateTime.Now,
                        Required  = DateTime.Now.AddDays(14),
                        Approval  = false
                    };
                    newStockRoomRequest.StockRoomRequestStatusId = newStockRoomRequest.Id;
                    if (formData != null && formData.WorkOrderNumber != null)
                    {
                        workOrderNumber = (int)formData.WorkOrderNumber;
                        workOrder       = _context.MaintenanceWorkOrders.Single(id => id.Id == workOrderNumber);
                        if (workOrder.LeadWorkerId != null)
                        {
                            worker = workers.Single(i => i.Id == workOrder.LeadWorker.Id);
                            newStockRoomRequest.Worker   = worker;
                            newStockRoomRequest.WorkerId = worker.Id;
                        }

                        newStockRoomRequest.MaintenanceWorkOrder   = workOrder;
                        newStockRoomRequest.MaintenanceWorkOrderId = workOrder.Id;
                    }
                    else
                    {
                        // Will be replaced when logins are possible
                        Random rand      = new Random();
                        Worker rndWorker = workers.ElementAt(rand.Next(_context.Workers.Count()));
                        newStockRoomRequest.Worker   = rndWorker;
                        newStockRoomRequest.WorkerId = newStockRoomRequest.Worker.Id;
                    }
                    _context.StockRoomRequests.Add(newStockRoomRequest);
                    _context.SaveChanges();
                    int requestId = newStockRoomRequest.Id; // Id of new request
                    StockRoomRequest tempStockRoomRequest = _context.StockRoomRequests.Single(i => i.Id == requestId);
                    foreach (var line in requestLineList)
                    {
                        line.StockRoomRequest   = tempStockRoomRequest;
                        line.StockRoomRequestId = tempStockRoomRequest.Id;
                        _context.StockroomRequestLines.Add(line);
                    }
                    _context.SaveChanges();
                }
            }


            return(RedirectToAction("Index", "Maintenance"));
        }
        /// <summary>
        /// Author: Dalton Cleveland
        /// Created : 1/31/2019
        /// The function which runs when Save is clicked
        /// </summary>
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (((string)btnSave.Content) == "Submit")
            {
                if (!ValidateInput())
                {
                    return;
                }
                MaintenanceWorkOrder newMaintenanceWorkOrder = new MaintenanceWorkOrder();
                newMaintenanceWorkOrder.MaintenanceTypeID    = (cboMaintenanceTypeID.SelectedItem.ToString());
                newMaintenanceWorkOrder.DateRequested        = DateTime.Now;
                newMaintenanceWorkOrder.RequestingEmployeeID = int.Parse(txtRequestingEmployeeID.Text);
                newMaintenanceWorkOrder.WorkingEmployeeID    = int.Parse(txtWorkingEmployeeID.Text);
                newMaintenanceWorkOrder.ResortPropertyID     = int.Parse(txtResortPropertyID.Text);
                newMaintenanceWorkOrder.MaintenanceStatusID  = cboStatus.SelectedItem.ToString();
                newMaintenanceWorkOrder.Comments             = txtComments.Text;
                newMaintenanceWorkOrder.Description          = txtDescription.Text;
                try
                {
                    if (_existingMaintenanceWorkOrder == null)
                    {
                        _maintenanceWorkOrderManager.AddMaintenanceWorkOrder(newMaintenanceWorkOrder);
                        SetError("");
                        MessageBox.Show("Maintenance Work Order Created Successfully: " +
                                        "\nMaintenanceTypeID: " + newMaintenanceWorkOrder.MaintenanceTypeID +
                                        "\nRequestingEmployeeID: " + newMaintenanceWorkOrder.RequestingEmployeeID +
                                        "\nWorkingEmployeeID: " + newMaintenanceWorkOrder.WorkingEmployeeID +
                                        "\nResortPropertyID: " + newMaintenanceWorkOrder.ResortPropertyID +
                                        "\nMaintenanceStatus: " + newMaintenanceWorkOrder.MaintenanceStatusID +
                                        "\nDescription: " + newMaintenanceWorkOrder.Description);
                    }
                    else
                    {
                        newMaintenanceWorkOrder.Complete = (bool)chkComplete.IsChecked;
                        _maintenanceWorkOrderManager.EditMaintenanceWorkOrder(_existingMaintenanceWorkOrder, newMaintenanceWorkOrder);
                        newMaintenanceWorkOrder.DateCompleted = DateTime.Now;
                        SetError("");
                        MessageBox.Show("Maintenance Work Order Updated Successfully: " +
                                        "\nOld MaintenanceTypeID: " + _existingMaintenanceWorkOrder.MaintenanceTypeID +
                                        "\nOld DateRequested: " + _existingMaintenanceWorkOrder.DateRequested +
                                        "\nOld RequestingEmployeeID: " + _existingMaintenanceWorkOrder.RequestingEmployeeID +
                                        "\nOld WorkingEmployeeID: " + _existingMaintenanceWorkOrder.WorkingEmployeeID +
                                        "\nOld ResortPropertyID: " + _existingMaintenanceWorkOrder.ResortPropertyID +
                                        "\nOldMaintenanceStatusID: " + _existingMaintenanceWorkOrder.MaintenanceStatusID +
                                        "\nOld Description: " + _existingMaintenanceWorkOrder.Description +
                                        "\n" +
                                        "\nNew MaintenanceTypeID: " + newMaintenanceWorkOrder.MaintenanceTypeID +
                                        "\nNew DateCompleted: " + newMaintenanceWorkOrder.DateCompleted +
                                        "\nNew RequestingEmployeeID: " + newMaintenanceWorkOrder.RequestingEmployeeID +
                                        "\nNew WorkingEmployeeID: " + newMaintenanceWorkOrder.WorkingEmployeeID +
                                        "\nNew ResortPropertyID: " + newMaintenanceWorkOrder.ResortPropertyID +
                                        "\nNew MaintenanceStatusID: " + newMaintenanceWorkOrder.MaintenanceStatusID +
                                        "\nNew Comments: " + newMaintenanceWorkOrder.Comments +
                                        "\nNew Description: " + newMaintenanceWorkOrder.Description);
                    }
                }
                catch (Exception ex)
                {
                    SetError(ex.Message);
                }

                Close();
            }
            else if (((string)btnSave.Content) == "Update")
            {
                setEditable();
            }
            else
            {
                MessageBox.Show(btnSave.Content.GetType() + " " + btnSave.Content);
            }
        }
示例#27
0
        /// <summary>
        /// Author: Dalton Cleveland
        /// Created : 2/21/2019
        /// Retrieve All Work Orders will attempt to select and return every single Work Order from our MSSQL database in the form of a List
        /// </summary>
        public List <MaintenanceWorkOrder> RetrieveAllMaintenanceWorkOrders()
        {
            List <MaintenanceWorkOrder> maintenanceWorkOrders = new List <MaintenanceWorkOrder>();

            // get a connection
            var conn = DBConnection.GetDbConnection();

            // command text
            string cmdText = @"sp_select_all_work_orders";

            // command objects
            var cmd = new SqlCommand(cmdText, conn);

            // set the command type
            cmd.CommandType = CommandType.StoredProcedure;

            try
            {
                conn.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        MaintenanceWorkOrder maintenanceWorkOrder = new MaintenanceWorkOrder();
                        maintenanceWorkOrder.MaintenanceWorkOrderID = reader.GetInt32(0);
                        maintenanceWorkOrder.MaintenanceTypeID      = reader.GetString(1);
                        maintenanceWorkOrder.DateRequested          = reader.GetDateTime(2);

                        if (reader.IsDBNull(3))
                        {
                            maintenanceWorkOrder.DateCompleted = null;
                        }
                        else
                        {
                            maintenanceWorkOrder.DateCompleted = reader.GetDateTime(3);
                        }
                        maintenanceWorkOrder.RequestingEmployeeID = reader.GetInt32(4);
                        maintenanceWorkOrder.WorkingEmployeeID    = reader.GetInt32(5);
                        maintenanceWorkOrder.Description          = reader.GetString(6);
                        if (reader.IsDBNull(7))
                        {
                            maintenanceWorkOrder.Comments = null;
                        }
                        else
                        {
                            maintenanceWorkOrder.Comments = reader.GetString(7);
                        }
                        maintenanceWorkOrder.MaintenanceStatusID = reader.GetString(8);
                        maintenanceWorkOrder.ResortPropertyID    = reader.GetInt32(9);
                        maintenanceWorkOrder.Complete            = reader.GetBoolean(10);
                        maintenanceWorkOrders.Add(maintenanceWorkOrder);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }
            return(maintenanceWorkOrders);
        }