Example #1
0
        //Common method to update status
        private void UpdateStatus(UpdateRequestStatusViewModel updateRequestStatusViewModel, int statusIdToUpdate, bool allowPreviousStatus = false)
        {
            var updateStatusResponse = new UpdateStatusResponseViewModel();

            using (RMSDbContext context = new RMSDbContext())
            {
                var requestDetails = context.RepairRequestDetails.Where(s => s.RequestId == updateRequestStatusViewModel.RequestId).Single();
                if (!allowPreviousStatus && requestDetails.StatusId >= statusIdToUpdate)
                {
                    throw new Exception("Status of the request " + requestDetails.RequestId + " is already moved forward.");
                }
                requestDetails.StatusId = statusIdToUpdate;
                UpdateStatusLog(context, requestDetails.RequestId, statusIdToUpdate, updateRequestStatusViewModel.UserId, updateRequestStatusViewModel.Comment);
                context.SaveChanges();
            }
        }
Example #2
0
        /// <summary>
        /// To create new repair request in database
        /// </summary>
        /// <param name="repairRequestDetails">details of request</param>
        public void CreateNewRepairRequest(CreateRequestViewModel repairRequestDetails)
        {
            using (RMSDbContext context = new RMSDbContext())
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        var requestDetails = new RepairRequestDetails()
                        {
                            CompanyName     = repairRequestDetails.CompanyName,
                            CreatedBy       = repairRequestDetails.CreatedBy,
                            CreatedOn       = DateTime.Now,
                            CustomerContact = repairRequestDetails.CustomerContact,
                            CustomerName    = repairRequestDetails.CustomerName,
                            ModelNumber     = repairRequestDetails.ModelNumber,
                            ProblemDetails  = repairRequestDetails.ProblemDetails,
                            StatusId        = (int)StatusEnum.Pending,
                            CityId          = repairRequestDetails.CityId,
                            CustomerAddress = repairRequestDetails.CustomerAddress,
                            CustomerPinCode = repairRequestDetails.PinCode,
                            Expense         = Convert.ToDecimal(repairRequestDetails.Expense),
                            StateId         = repairRequestDetails.StateId,
                        };
                        context.RepairRequestDetails.Add(requestDetails);
                        UpdateStatusLog(context, requestDetails.RequestId, requestDetails.StatusId, repairRequestDetails.CreatedBy, null);

                        context.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        throw ex;
                    }
                }
            }
        }
Example #3
0
 public void LogErrorInSync(ErrorInfo errorInformation)
 {
     context.ErrorInfo.Add(errorInformation);
     context.SaveChanges();
 }