示例#1
0
        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;
            }
        }
示例#2
0
        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);
        }