private void UpdateStatus(string status) { switch (status) { case "_SUBMITTED_": Status = RequestStatusType.Submited; break; case "_IN_PROGRESS_": Status = RequestStatusType.InProgress; break; case "_CANCELLED_": Status = RequestStatusType.Canceled; break; case "_DONE_": Status = RequestStatusType.Done; break; case "_DONE_NO_DATA_": Status = RequestStatusType.NoData; break; default: Status = RequestStatusType.Unknown; break; } }
public bool ChangeStatus(string requestID, RequestStatusType status) { if (!_requestDict.ContainsKey(requestID)) { return(false); } if (!_requestDict.TryGetValue(requestID, out var changeRequestModel)) { return(false); } if (changeRequestModel.Status == status) { return(true); } RequestModel newRequestModel = new RequestModel { ID = changeRequestModel.ID, Status = status }; var success = _requestDict.TryUpdate(requestID, newRequestModel, changeRequestModel); if (!success) { return(false); } using (var context = new HistoryContext()) { var changeField = context.Histories.FirstOrDefault(w => w.RequestID == requestID); if (changeField != null) { changeField.RequestStatus = status; context.Histories.AddOrUpdate(changeField); context.SaveChangesAsync(); } } return(true); }