public GeneralResponse EditDocumentStatus(EditDocumentStatusRequest request) { GeneralResponse response = new GeneralResponse(); DocumentStatus documentStatus = new DocumentStatus(); documentStatus = _documentStatusRepository.FindBy(request.ID); if (documentStatus != null) { try { documentStatus.ModifiedDate = PersianDateTime.Now; documentStatus.ModifiedEmployee = _employeeRepository.FindBy(request.ModifiedEmployeeID); documentStatus.DefaultStatus = request.DefaultStatus; documentStatus.CompleteStatus = request.CompleteStatus; if (request.DocumentStatusName != null) { documentStatus.DocumentStatusName = request.DocumentStatusName; } if (documentStatus.RowVersion != request.RowVersion) { response.ErrorMessages.Add("EditConcurrencyKey"); return(response); } else { documentStatus.RowVersion += 1; } if (documentStatus.GetBrokenRules().Count() > 0) { foreach (BusinessRule businessRule in documentStatus.GetBrokenRules()) { response.ErrorMessages.Add(businessRule.Rule); } return(response); } _documentStatusRepository.Save(documentStatus); _uow.Commit(); ////response.success = true; } catch (Exception ex) { response.ErrorMessages.Add(ex.Message); } } else { response.ErrorMessages.Add("NoItemToEditKey"); } return(response); }
public GeneralResponse AddDocumentStatus(AddDocumentStatusRequest request) { GeneralResponse response = new GeneralResponse(); try { DocumentStatus documentStatus = new DocumentStatus(); documentStatus.ID = Guid.NewGuid(); documentStatus.CreateDate = PersianDateTime.Now; documentStatus.CreateEmployee = _employeeRepository.FindBy(request.CreateEmployeeID); documentStatus.DefaultStatus = request.DefaultStatus; documentStatus.CompleteStatus = request.CompleteStatus; documentStatus.DocumentStatusName = request.DocumentStatusName; documentStatus.SortOrder = GetSortOrder(); documentStatus.RowVersion = 1; #region Validation if (documentStatus.GetBrokenRules().Count() > 0) { foreach (BusinessRule businessRule in documentStatus.GetBrokenRules()) { response.ErrorMessages.Add(businessRule.Rule); } return(response); } #endregion _documentStatusRepository.Add(documentStatus); _uow.Commit(); ////response.success = true; response.ID = documentStatus.ID; } catch (Exception ex) { response.ErrorMessages.Add(ex.Message); } return(response); }
public GeneralResponse EditDocumentStatuss(IEnumerable <EditDocumentStatusRequest> requests) { GeneralResponse response = new GeneralResponse(); DocumentStatus documentStatus = new DocumentStatus(); bool defaultFlag = false; bool completeFlag = false; Guid defaultDocumentStatusID = Guid.Empty; Guid completeDocumentStatusID = Guid.Empty; try { foreach (EditDocumentStatusRequest request in requests) { documentStatus = _documentStatusRepository.FindBy(request.ID); documentStatus.ModifiedDate = PersianDateTime.Now; documentStatus.ModifiedEmployee = _employeeRepository.FindBy(request.ModifiedEmployeeID); #region If Default or Complete status changed, change all entity to remain only one of this fields true if (documentStatus.DefaultStatus != request.DefaultStatus) { documentStatus.DefaultStatus = request.DefaultStatus; defaultFlag = true; if (documentStatus.DefaultStatus) { defaultDocumentStatusID = documentStatus.ID; } } if (documentStatus.CompleteStatus != request.CompleteStatus) { documentStatus.CompleteStatus = request.CompleteStatus; completeFlag = true; if (documentStatus.CompleteStatus) { completeDocumentStatusID = documentStatus.ID; } } #endregion documentStatus.DocumentStatusName = request.DocumentStatusName; #region RowVersion if (documentStatus.RowVersion != request.RowVersion) { response.ErrorMessages.Add("EditConcurrencyKey"); return(response); } else { documentStatus.RowVersion += 1; } #endregion #region Validation if (documentStatus.GetBrokenRules().Count() > 0) { foreach (BusinessRule businessRule in documentStatus.GetBrokenRules()) { response.ErrorMessages.Add(businessRule.Rule); } return(response); } #endregion _documentStatusRepository.Save(documentStatus); } #region if default or complete flag is true change all entity to remain one of them true if (defaultFlag) { foreach (var document_Status in _documentStatusRepository.FindAll()) { if (document_Status.ID == defaultDocumentStatusID) { document_Status.DefaultStatus = true; } else { document_Status.DefaultStatus = false; } _documentStatusRepository.Save(document_Status); } } if (completeFlag) { foreach (var document_Status in _documentStatusRepository.FindAll()) { if (document_Status.ID == completeDocumentStatusID) { document_Status.CompleteStatus = true; } else { document_Status.CompleteStatus = false; } _documentStatusRepository.Save(document_Status); } } #endregion _uow.Commit(); ////response.success = true; } catch (Exception ex) { response.ErrorMessages.Add(ex.Message); } return(response); }