//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(); } }
/// <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; } } } }
public void LogErrorInSync(ErrorInfo errorInformation) { context.ErrorInfo.Add(errorInformation); context.SaveChanges(); }