예제 #1
0
        public async Task <IActionResult> MetricAddPost(MetricWorkModel model)
        {
            Task select = GetMetricSelects(model);

            model.DropDeletedColumns();

            if (ModelState.IsValid)
            {
                var result = await _crudService.Create(model.TranslateToMetricModel(), Token, SettingService.MetricEntity);

                AddMessageToModel(model, result.Message, !result.Success);

                if (result.Success)
                {
                    return(RedirectToActionWithId(model, "MetricEdit", "Setting", result.Id));
                }
            }
            else
            {
                AddModelStateErrors(model);
            }

            Task.WaitAll(select);

            return(View("Metric/Add", model));
        }
예제 #2
0
        public async Task <IActionResult> MetricAdd()
        {
            MetricWorkModel model = new MetricWorkModel();

            await GetMetricSelects(model);

            return(View("Metric/Add", model));
        }
예제 #3
0
        public async Task <IActionResult> MetricEdit(int id)
        {
            MetricWorkModel model = new MetricWorkModel();

            CheckTempData(model);

            Task select = GetMetricSelects(model);

            var result = await _crudService.Get <MetricModel>(id, Token, SettingService.MetricEntity, false); //lazy kvuli columns

            if (result.Success)
            {
                if (result.Value.CompanyId == MyUser.CompanyId)
                {
                    model.Id               = id;
                    model.Name             = result.Value.Name;
                    model.Public           = result.Value.Public;
                    model.Description      = result.Value.Description;
                    model.RequirementGroup = result.Value.RequirementGroup;
                    model.Identificator    = result.Value.Identificator;
                    model.MetricTypeId     = result.Value.MetricTypeId.ToString();
                    model.AspiceProcessId  = result.Value.AspiceProcessId.ToString();
                    model.AffectedFieldId  = result.Value.AffectedFieldId.ToString();

                    model.LoadMetricColumns(result.Value.Columns);
                }
                else
                {
                    model.CanView = false;
                    AddMessageToModel(model, "You can't edit this metric!");
                }
            }
            else
            {
                AddMessageToModel(model, result.Message);
            }

            Task.WaitAll(select);

            return(View("Metric/Edit", model));
        }
예제 #4
0
        public async Task <IActionResult> MetricEditPost(int id, MetricWorkModel model)
        {
            Task select = GetMetricSelects(model);

            model.DropDeletedColumns();

            if (ModelState.IsValid)
            {
                var result = await _crudService.Edit(id, model.TranslateToMetricModel(), Token, SettingService.MetricEntity);

                AddMessageToModel(model, result.Message, !result.Success);
            }
            else
            {
                AddModelStateErrors(model);
            }

            Task.WaitAll(select);

            return(View("Metric/Edit", model));
        }
예제 #5
0
        private async Task GetMetricSelects(MetricWorkModel model)
        {
            Task[] tasks = new Task[3];

            tasks[0] = _settingService.GetAspiceProcessesForSelect(Token).ContinueWith(t =>
            {
                model.AspiceProcesses = t.Result;

                if (model.AspiceProcesses == null || model.AspiceProcesses.Count == 0)
                {
                    AddMessageToModel(model, "Cannot retrieve Automotive SPICE processes, press F5 please.");
                }
            });

            tasks[1] = _settingService.GetMetricTypesForSelect(Token).ContinueWith(t =>
            {
                model.MetricTypes = t.Result;

                if (model.MetricTypes == null || model.MetricTypes.Count == 0)
                {
                    AddMessageToModel(model, "Cannot retrieve metric types, press F5 please.");
                }
            });

            tasks[2] = _settingService.GetAffectedFieldsForSelect(Token).ContinueWith(t =>
            {
                model.AffectedFields = t.Result;

                if (model.AffectedFields == null || model.AffectedFields.Count == 0)
                {
                    AddMessageToModel(model, "Cannot retrieve metric afected fields, press F5 please.");
                }
            });

            await Task.WhenAll(tasks);
        }