コード例 #1
0
        public OperationResult Update(ReplyRequest model)
        {
            var checkListValueList = new List <string>();
            var fieldValueList     = new List <string>();
            var core = _coreHelper.GetCore();

            try
            {
                model.ElementList.ForEach(element =>
                {
                    checkListValueList.AddRange(CaseUpdateHelper.GetCheckList(element));
                    fieldValueList.AddRange(CaseUpdateHelper.GetFieldList(element));
                });
            }
            catch (Exception exception)
            {
                return(new OperationResult(false, "Case could not be updated"));
            }
            try
            {
                core.CaseUpdate(model.Id, fieldValueList, checkListValueList);
                return(new OperationResult(true, "Case has been updated"));
            }
            catch (Exception)
            {
                return(new OperationResult(false, "Case could not be updated"));
            }
        }
コード例 #2
0
        public OperationResult Update(ReplyRequest model)
        {
            var checkListValueList = new List <string>();
            var fieldValueList     = new List <string>();
            var core = _coreHelper.GetCore();

            try
            {
                model.ElementList.ForEach(element =>
                {
                    checkListValueList.AddRange(CaseUpdateHelper.GetCheckList(element));
                    fieldValueList.AddRange(CaseUpdateHelper.GetFieldList(element));
                });
            }
            catch (Exception)
            {
                return(new OperationResult(false, LocaleHelper.GetString("CaseCouldNotBeUpdated")));
            }
            try
            {
                core.CaseUpdate(model.Id, fieldValueList, checkListValueList);
                core.CaseUpdateFieldValues(model.Id);
                return(new OperationResult(true, LocaleHelper.GetString("CaseHasBeenUpdated")));
            }
            catch (Exception)
            {
                return(new OperationResult(false, LocaleHelper.GetString("CaseCouldNotBeUpdated")));
            }
        }
コード例 #3
0
        public async Task <OperationResult> Update(ReplyRequest model)
        {
            var checkListValueList = new List <string>();
            var fieldValueList     = new List <string>();
            var core = await _coreHelper.GetCore();

            var locale = await _userService.GetCurrentUserLocale();

            var language = core.DbContextHelper.GetDbContext().Languages.Single(x => x.LanguageCode.ToLower() == locale.ToLower());

            try
            {
                model.ElementList.ForEach(element =>
                {
                    checkListValueList.AddRange(CaseUpdateHelper.GetCheckList(element));
                    fieldValueList.AddRange(CaseUpdateHelper.GetFieldList(element));
                });
            }
            catch (Exception ex)
            {
                Log.LogException(ex.Message);
                Log.LogException(ex.StackTrace);
                return(new OperationResult(false, _localizationService.GetString("CaseCouldNotBeUpdated") + $" Exception: {ex.Message}"));
            }

            try
            {
                await core.CaseUpdate(model.Id, fieldValueList, checkListValueList);

                await core.CaseUpdateFieldValues(model.Id, language);

                if (CaseUpdateDelegates.CaseUpdateDelegate != null)
                {
                    var invocationList = CaseUpdateDelegates.CaseUpdateDelegate
                                         .GetInvocationList();
                    foreach (var func in invocationList)
                    {
                        func.DynamicInvoke(model.Id);
                    }
                }

                return(new OperationResult(true, _localizationService.GetString("CaseHasBeenUpdated")));
            }
            catch (Exception ex)
            {
                Log.LogException(ex.Message);
                Log.LogException(ex.StackTrace);
                return(new OperationResult(false, _localizationService.GetString("CaseCouldNotBeUpdated") + $" Exception: {ex.Message}"));
            }
        }
コード例 #4
0
        public async Task <OperationResult> Update(ReplyRequest model)
        {
            var checkListValueList = new List <string>();
            var fieldValueList     = new List <string>();
            var core = await _coreHelper.GetCore();

            var language = await _userService.GetCurrentUserLanguage();

            try
            {
                model.ElementList.ForEach(element =>
                {
                    checkListValueList.AddRange(CaseUpdateHelper.GetCheckList(element));
                    fieldValueList.AddRange(CaseUpdateHelper.GetFieldList(element));
                });
            }
            catch (Exception ex)
            {
                Log.LogException(ex.Message);
                Log.LogException(ex.StackTrace);
                return(new OperationResult(false, $"{_localizationService.GetString("CaseCouldNotBeUpdated")} Exception: {ex.Message}"));
            }

            try
            {
                await core.CaseUpdate(model.Id, fieldValueList, checkListValueList);

                await core.CaseUpdateFieldValues(model.Id, language);

                if (model.IsDoneAtEditable)
                {
                    var sdkDbContext = core.DbContextHelper.GetDbContext();

                    var foundCase = await sdkDbContext.Cases
                                    .Where(x => x.Id == model.Id &&
                                           x.WorkflowState != Constants.WorkflowStates.Removed)
                                    .FirstOrDefaultAsync();

                    if (foundCase != null)
                    {
                        if (foundCase.DoneAt != null)
                        {
                            var newDoneAt = new DateTime(model.DoneAt.Year, model.DoneAt.Month, model.DoneAt.Day, foundCase.DoneAt.Value.Hour, foundCase.DoneAt.Value.Minute, foundCase.DoneAt.Value.Second);
                            foundCase.DoneAtUserModifiable = newDoneAt;
                        }

                        await foundCase.Update(sdkDbContext);
                    }
                    else
                    {
                        return(new OperationResult(false, _localizationService.GetString("CaseNotFound")));
                    }
                }

                if (CaseUpdateDelegates.CaseUpdateDelegate != null)
                {
                    var invocationList = CaseUpdateDelegates.CaseUpdateDelegate
                                         .GetInvocationList();
                    foreach (var func in invocationList)
                    {
                        func.DynamicInvoke(model.Id);
                    }
                }

                return(new OperationResult(true, _localizationService.GetString("CaseHasBeenUpdated")));
            }
            catch (Exception ex)
            {
                Log.LogException(ex.Message);
                Log.LogException(ex.StackTrace);
                return(new OperationResult(false, _localizationService.GetString("CaseCouldNotBeUpdated") + $" Exception: {ex.Message}"));
            }
        }
    public async Task <OperationResult> Update(ReplyRequest model)
    {
        var checkListValueList = new List <string>();
        var fieldValueList     = new List <string>();
        var core = await _coreHelper.GetCore();

        var language = await _userService.GetCurrentUserLanguage();

        var currentUser = await _userService.GetCurrentUserAsync();

        try
        {
            model.ElementList.ForEach(element =>
            {
                checkListValueList.AddRange(CaseUpdateHelper.GetCheckList(element));
                fieldValueList.AddRange(CaseUpdateHelper.GetFieldList(element));
            });
        }
        catch (Exception ex)
        {
            Log.LogException(ex.Message);
            Log.LogException(ex.StackTrace);
            return(new OperationResult(false, $"{_localizationService.GetString("CaseCouldNotBeUpdated")} Exception: {ex.Message}"));
        }

        try
        {
            await core.CaseUpdate(model.Id, fieldValueList, checkListValueList);

            await core.CaseUpdateFieldValues(model.Id, language);

            var sdkDbContext = core.DbContextHelper.GetDbContext();

            var foundCase = await sdkDbContext.Cases
                            .Where(x => x.Id == model.Id &&
                                   x.WorkflowState != Constants.WorkflowStates.Removed)
                            .FirstOrDefaultAsync();

            if (foundCase != null)
            {
                if (foundCase.DoneAt != null)
                {
                    var newDoneAt = new DateTime(model.DoneAt.Year, model.DoneAt.Month, model.DoneAt.Day, foundCase.DoneAt.Value.Hour, foundCase.DoneAt.Value.Minute, foundCase.DoneAt.Value.Second);
                    foundCase.DoneAtUserModifiable = newDoneAt;
                }

                // foundCase.SiteId = sdkDbContext.Sites
                //     .Where(x => x.WorkflowState != Constants.WorkflowStates.Removed)
                //     .Single(x => x.Name == $"{currentUser.FirstName} {currentUser.LastName}").Id;
                foundCase.Status = 100;
                await foundCase.Update(sdkDbContext);

                var planningCase = await _dbContext.PlanningCases.SingleAsync(x => x.MicrotingSdkCaseId == model.Id);

                var planningCaseSite = await _dbContext.PlanningCaseSites.SingleOrDefaultAsync(x => x.MicrotingSdkCaseId == model.Id && x.PlanningCaseId == planningCase.Id);

                if (planningCaseSite == null)
                {
                    planningCaseSite = new PlanningCaseSite()
                    {
                        MicrotingSdkCaseId  = model.Id,
                        PlanningCaseId      = planningCase.Id,
                        MicrotingSdkeFormId = planningCase.MicrotingSdkeFormId,
                        PlanningId          = planningCase.PlanningId,
                        Status             = 100,
                        MicrotingSdkSiteId = (int)foundCase.SiteId
                    };
                    await planningCaseSite.Create(_dbContext);
                }

                planningCaseSite.MicrotingSdkCaseDoneAt = foundCase.DoneAtUserModifiable;
                planningCaseSite = await SetFieldValue(planningCaseSite, foundCase.Id, language);

                await planningCaseSite.Update(_dbContext);

                planningCase.MicrotingSdkCaseDoneAt = foundCase.DoneAtUserModifiable;
                planningCase = await SetFieldValue(planningCase, foundCase.Id, language);

                await planningCase.Update(_dbContext);
            }
            else
            {
                return(new OperationResult(false, _localizationService.GetString("CaseNotFound")));
            }

            return(new OperationResult(true, _localizationService.GetString("CaseHasBeenUpdated")));
        }
        catch (Exception ex)
        {
            Log.LogException(ex.Message);
            Log.LogException(ex.StackTrace);
            return(new OperationResult(false, _localizationService.GetString("CaseCouldNotBeUpdated") + $" Exception: {ex.Message}"));
        }
    }