private void Done(object sender, EventArgs e)
        {
            if (IsFieldsEmpty())
            {
                this.ShowMessage(Resource.String.please_fill_all_fields);
                return;
            }

            var outcomeModel = new OutcomeModel()
            {
                Title  = edtTitle.Text,
                Amount = long.Parse(edtAmount.Text),
                Group  = outcomeGroup.Id,
                Date   = deadLine,
                Items  = items
            };

            var progressDialog = this.CreateDialog(GetString(Resource.String.adding_outcome),
                                                   GetString(Resource.String.wait));

            progressDialog.Show();

            this.DoRequest(OutComesController.Instance.Add(outcomeModel), () =>
            {
                progressDialog.Dismiss();
                this.ShowMessage(Resource.String.create_outcome_success);

                SetResult(Result.Ok);
                Finish();
            });
        }
        public ResponseResultModel Get(string username, string pwd)
        {
            Log.Information("CreateUser : "******"User logged";
                    response.outcome    = outcome;
                    response.result     = u;
                }
                else
                {
                    outcome.isSuccess   = false;
                    outcome.description = "Unauthorized user.";
                    response.outcome    = outcome;
                }
            }

            return(response);
        }
示例#3
0
        public virtual ActionResult ReassignIndicator(CustomReassignOutcomeIndicatorModel reassignModel)
        {
            int code = 0;

            try
            {
                OutcomeIndicatorModel indicatorModel = ClientResultsMatrix.FindOneOutcomeIndicatorModel(
                    new OutcomeIndicatorSpecification {
                    OutcomeIndicatorId = reassignModel.OutcomeIndicatorId
                });

                indicatorModel.AccessedByAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR);
                indicatorModel.IsThirdInterval         = reassignModel.IsThirdInterval;
                indicatorModel.IntervalId = reassignModel.IntervalId;

                OutcomeModel currentImpactModel = ClientResultsMatrix.FindOneOutcomeModel(
                    new OutcomeSpecification {
                    OutcomeId = indicatorModel.OutcomeId
                });

                OutcomeModel newImpactModel = ClientResultsMatrix.FindOneOutcomeModel(
                    new OutcomeSpecification {
                    OutcomeId = reassignModel.ImpactId
                });

                if (indicatorModel != null & currentImpactModel != null && newImpactModel != null)
                {
                    ClientResultsMatrix.ReassignIndicator(
                        currentImpactModel,
                        newImpactModel,
                        indicatorModel,
                        IDBContext.Current.UserName);

                    code = 503;
                }
            }
            catch (Exception)
            {
                code = 497;
            }

            _cacheData.Remove(_outcomeIndicatorCacheName, System.Web.Caching.CacheItemRemovedReason.Removed);
            _cacheData.Remove(_outcomesCacheName, System.Web.Caching.CacheItemRemovedReason.DependencyChanged);

            var resultsMatrix = ClientResultsMatrix.FindOneModel(
                new ResultsMatrixSpecification {
                ResultsMatrixId = reassignModel.ResultsMatrixId
            });

            return(RedirectToAction(
                       "Edit",
                       "Outcomes",
                       new
            {
                operationId = resultsMatrix.OperationId,
                resultsMatrixId = resultsMatrix.ResultsMatrixId,
                code = code
            }));
        }
示例#4
0
        public virtual ActionResult Delete(
            int impactId, int intervalId, bool accessedByAdmin, bool isThirInterval)
        {
            string user = IDBContext.Current.UserLoginName;

            Logger.GetLogger().WriteMessage(
                "OutcomesController", string.Format("I am {0}, accessAdmin: {1}", user, accessedByAdmin));

            CustomDeleteOutcomeModel deleteImpactModel = new CustomDeleteOutcomeModel();

            int totalRows = 0;

            OutcomeModel currentImpact = _clientResultsMatrix.FindOneOutcomeModel(
                new OutcomeSpecification()
            {
                OutcomeId = impactId
            });

            var existingImpacts = _clientResultsMatrix.FindAllOutcomeModelsBySpecification(
                totalRows,
                new OutcomeSpecification()
            {
                ResultsMatrixId = currentImpact.ResultsMatrixId
            },
                int.MaxValue,
                0,
                null).ToList <OutcomeModel>();

            existingImpacts.Where(x => x.OutcomeId == currentImpact.OutcomeId).ForEach(x =>
                                                                                       x.Statement = "Delete");

            existingImpacts.Sort((x, y) => x.Statement.CompareTo(y.Statement));

            deleteImpactModel.currentImpact = currentImpact;

            deleteImpactModel.existingImpacts = existingImpacts.ToList <OutcomeModel>();

            deleteImpactModel.intervalId = intervalId;

            deleteImpactModel.resultsMatrixId = currentImpact.ResultsMatrixId;

            if (intervalId == ResultsMatrixCodes.ThirdInterval || (accessedByAdmin && isThirInterval))
            {
                deleteImpactModel.AccessedByAdministrator = accessedByAdmin;
                deleteImpactModel.IsThirdInterval         = isThirInterval;
                ViewData["message"] = Localization.GetText("TCM.RCMW.RegisterChangesMany.TextMessage");
            }
            else
            {
                deleteImpactModel.AccessedByAdministrator = accessedByAdmin;
                deleteImpactModel.IsThirdInterval         = false;
            }

            deleteImpactModel.IsValidated =
                ClientResultsMatrix.IsValidateOutcomeBYOutcomeIndicatorYearPlans(impactId);

            return(PartialView(deleteImpactModel));
        }
示例#5
0
        public async Task <Outcome> SaveOutcomeAsync(OutcomeModel outcomeModel)
        {
            //using (var transaction = await _db.Database.BeginTransactionAsync())
            //{
            Outcome outcome;

            if (outcomeModel.Id.HasValue)
            {
                outcome = await _db.Outcomes
                          .Include(o => o.Photo)
                          .FirstAsync(o => o.Id == outcomeModel.Id.Value);
            }
            else
            {
                outcome = new Outcome();
                _db.Add(outcome);
            }

            outcome.Name    = outcomeModel.Name;
            outcome.Summary = outcomeModel.Summary;
            outcome.PhotoId = outcomeModel.PhotoId;
            outcome.QuizId  = outcomeModel.QuizId;

            var existingRoleOutcomes = _db.CharacterRoleOutcomes.Where(cro => cro.OutcomeId == outcome.Id);

            _db.RemoveRange(existingRoleOutcomes);
            await _db.SaveChangesAsync();

            foreach (var roleOutcomeModel in outcomeModel.CharacterRoleOutcomes)
            {
                outcome.CharacterRoleOutcomes.Add(new CharacterRoleOutcome {
                    CharacterRoleId = roleOutcomeModel.CharacterRoleId,
                    OutcomeId       = outcome.Id,
                    Value           = roleOutcomeModel.Value
                });
            }
            await _db.SaveChangesAsync();

            //transaction.Commit();

            return(await _db.Outcomes
                   .Include(o => o.CharacterRoleOutcomes)
                   .ThenInclude(o => o.CharacterRole)
                   .Include(o => o.AnswerOutcomes)
                   .ThenInclude(o => o.Answer)
                   .ThenInclude(o => o.Question)
                   .FirstAsync(o => o.Id == outcome.Id));

            //}
        }
示例#6
0
        public ActionResult Outcomes(string lmsProviderName)
        {
            if (string.IsNullOrEmpty(lmsProviderName))
            {
                this.ViewBag.Message = "Required parameters were not provided. Please refresh page and try again.";
                return(this.View("~/Views/Lti/LtiError.cshtml"));
            }

            var model = new OutcomeModel
            {
                LmsProviderName = lmsProviderName
            };

            return(View("~/Views/Lti/Outcomes.cshtml", model));
        }
        private void Init()
        {
            var content = Intent.GetStringExtra("OutcomeDetail");

            outcomeModel = JsonConvert.DeserializeObject <OutcomeModel>(content);
            outcomeGroup = AppConstantValues.FeeGrooups.Find(x => x.Id.Equals(outcomeModel.Group));
            deadLine     = outcomeModel.Date;

            tvTitle.Text               = GetString(Resource.String.edit_outcome);
            edtTitle.Text              = outcomeModel.Title;
            edtAmount.Text             = outcomeModel.Amount.ToString();
            edtChooseOutcomeGroup.Text = GetString(outcomeGroup.TitleId);
            imgViewChooseOutcomeGroup.SetImageResource(outcomeGroup.ImageId);
            edtDeadline.Text = deadLine.ToDateString();
        }
示例#8
0
        public OutcomeEntity(OutcomeModel model)
        {
            Id          = model.Key.AsGuidKey().Guid;
            Description = model.Description;
            Amount      = model.Amount.Value;
            Currency    = model.Amount.Currency;
            When        = model.When;
            Categories  = new List <OutcomeCategoryEntity>();

            foreach (IKey categoryKey in model.CategoryKeys)
            {
                Categories.Add(new OutcomeCategoryEntity()
                {
                    OutcomeId  = Id,
                    CategoryId = categoryKey.AsGuidKey().Guid
                });
            }
        }
示例#9
0
        public virtual ActionResult Reassign(int resultsMatrixId, int impactId, int impactIndicatorId)
        {
            // Check if the administrator is accessing
            var accessedByAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR);

            // Get results matrix with interval data associated to administrator
            var lightResultModel = ClientResultsMatrix.GetLightResultsMatrixModel(new ResultsMatrixModel()
            {
                ResultsMatrixId = resultsMatrixId, AccessedByAdministrator = accessedByAdministrator
            });

            // Set impact data
            OutcomeModel currentImpact = ClientResultsMatrix.FindOneOutcomeModel(new OutcomeSpecification()
            {
                OutcomeId = impactId
            });

            // Get outcomes
            IDB.MW.Domain.Models.Architecture.ResultMatrix.Outcomes.ResultsMatrixModel resultModel = ClientResultsMatrix.FindOneModel(new ResultsMatrixSpecification()
            {
                ResultsMatrixId = resultsMatrixId
            });

            List <OutcomeModel> outcomes = resultModel.Outcomes;

            // Remove current outcome
            outcomes.RemoveAll(i => i.OutcomeId == impactId);

            // Set reassign model properties
            CustomReassignOutcomeIndicatorModel reassignModel = new CustomReassignOutcomeIndicatorModel()
            {
                Statement               = currentImpact.Statement,
                Definition              = currentImpact.OutcomeIndicators.Where(ii => ii.OutcomeIndicatorId == impactIndicatorId).SingleOrDefault <OutcomeIndicatorModel>().Definition,
                OutcomeIndicatorId      = impactIndicatorId,
                ResultsMatrixId         = lightResultModel.ResultsMatrixId,
                AccessedByAdministrator = accessedByAdministrator,
                IsThirdInterval         = lightResultModel.IsThirdInterval,
                ImpactId   = impactId,
                Outcomes   = outcomes,
                IntervalId = lightResultModel.Interval.IntervalId
            };

            return(PartialView(reassignModel));
        }
示例#10
0
        public virtual ActionResult EditDetail(int impactIndicatorId)
        {
            OutcomeIndicatorModel indicatorModel = ClientResultsMatrix.FindOneOutcomeIndicatorModel(new OutcomeIndicatorSpecification()
            {
                OutcomeIndicatorId = impactIndicatorId
            });

            OutcomeModel impactModel = ClientResultsMatrix.FindOneOutcomeModel(new OutcomeSpecification()
            {
                OutcomeId = indicatorModel.OutcomeId
            });

            bool isLinked = (indicatorModel.PredefinedIndicator == null) ? false : true;

            // Start third interval validation
            var operationNumber = ClientResultsMatrix.FindOneModel(new ResultsMatrixSpecification()
            {
                ResultsMatrixId = impactModel.ResultsMatrixId
            }).Operation.OperationNumber;

            // Check if the administrator is accessing
            var accessedByAdministrator = IDBContext.Current.HasRole(Role.RM_ADMINISTRATOR);

            var resultsMatrix = ClientResultsMatrix.GetResultsMatrixModel(new OperationModel()
            {
                OperationNumber = operationNumber, AccessedByAdministrator = accessedByAdministrator
            });

            // End third interval validation
            CustomEditOutcomeIndicatorModel editImpactIndicatoModel = new CustomEditOutcomeIndicatorModel
            {
                impact          = impactModel,
                impactIndicator = indicatorModel,
                IsLinkedToPredefinedIndicator = isLinked,
                IntervalId = resultsMatrix.Interval.IntervalId,
                AccessedByAdministrator = accessedByAdministrator,
                IsThirdInterval         = resultsMatrix.IsThirdInterval,
                OperationNumber         = operationNumber,
                IsTcmModule             = false
            };

            return(View(editImpactIndicatoModel));
        }
示例#11
0
        private void OnClickSave(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(edtAmount.Text) &&
                DateTime.TryParse(edtDate.Text, out var date) &&
                !string.IsNullOrEmpty(edtTitle.Text) &&
                !string.IsNullOrEmpty(edtDescription.Text))
            {
                if (int.TryParse(edtAmount.Text, out var amount) && amount > 0)
                {
                    var outcomeModel = new OutcomeModel()
                    {
                        Title  = edtTitle.Text,
                        Amount = amount,
                        Date   = date
                    };
                    try
                    {
                        OutComesController.Instance.Add(outcomeModel);
                        SaveClick?.Invoke(outcomeModel, e);
                        Dismiss();
                    }
                    catch (Exception ex)
                    {
                        this.ShowMessage(ex.Message);
                    }
                }
                else
                {
                    this.ShowMessage(Resource.String.amount_parse_error_message);
                }

                edtDescription.Text = string.Empty;
                edtAmount.Text      = string.Empty;
                edtDate.Text        = string.Empty;
                edtTitle.Text       = string.Empty;
            }
            else
            {
                this.ShowMessage(Resource.String.add_outcome_dialog_error);
            }
        }
示例#12
0
        public virtual ActionResult Detail(int resultsMatrixId, int impactId, int impactIndicatorId)
        {
            OutcomeModel impactModel = ClientResultsMatrix.FindOneOutcomeModel(new OutcomeSpecification()
            {
                OutcomeId = impactId
            });

            var impactIndicatorModel = impactModel.OutcomeIndicators.Where(ii => ii.OutcomeIndicatorId == impactIndicatorId).SingleOrDefault <OutcomeIndicatorModel>();

            var resultModel = ClientResultsMatrix.FindOneModel(new ResultsMatrixSpecification()
            {
                ResultsMatrixId = resultsMatrixId
            });

            impactModel.OutcomeIndicators.Clear();

            impactModel.OutcomeIndicators.Add(impactIndicatorModel);

            ViewData["operationNumber"] = resultModel.Operation.OperationNumber;

            var StateDraftId = ClientConvergenceMasterData.GetMasterDataId("VALIDATION_STAGE", "PMI_DRAFT");
            var isDraft      = false;

            if (resultModel.ValidationStageId == StateDraftId)
            {
                isDraft = true;
            }

            ViewBag.isDraft    = isDraft;
            ViewBag.isEditable = ClientResultsMatrix.GetLightResultsMatrixModel(new ResultsMatrixModel()
            {
                ResultsMatrixId = resultModel.ResultsMatrixId
            }).isEditable;

            return(View(impactModel));
        }
示例#13
0
        public ActionResult Outcomes(OutcomeModel model, string submit)
        {
            if (string.IsNullOrEmpty(model.LmsProviderName))
            {
                this.ViewBag.Message = "Session parameter is required. Please refresh page and try again.";
                return(this.View("~/Views/Lti/LtiError.cshtml"));
            }
            var session         = GetReadOnlySession(model.LmsProviderName);
            var lmsLicense      = session.LmsCompany;
            var outcomeUrl      = session.LtiSession.LtiParam.lis_outcome_service_url;
            var outcomeSourceId = session.LtiSession.LtiParam.lis_result_sourcedid;

            if (string.IsNullOrWhiteSpace(outcomeUrl) || string.IsNullOrWhiteSpace(outcomeSourceId))
            {
                this.ViewBag.Message = "Outcomes service is unavailable for current session. Please refresh page and try again.";
                return(this.View("~/Views/Lti/LtiError.cshtml"));
            }

            switch (submit)
            {
            case "Send Grade":
                if (LtiOutcomesHelper.PostScore(outcomeUrl, lmsLicense.ConsumerKey, lmsLicense.SharedSecret,
                                                outcomeSourceId, model.Score))
                {
                    ViewBag.Message = "Grade sent";
                }
                else
                {
                    ViewBag.Message = "Invalid request";
                }
                break;

            case "Read Grade":
                var lisResult = LtiOutcomesHelper.ReadScore(outcomeUrl, lmsLicense.ConsumerKey,
                                                            lmsLicense.SharedSecret, outcomeSourceId);
                if (lisResult.IsValid)
                {
                    model.Score     = lisResult.Score;
                    ViewBag.Message = "Grade read";
                }
                else
                {
                    ViewBag.Message = "No grade";
                }
                break;

            case "Delete Grade":
                if (LtiOutcomesHelper.DeleteScore(outcomeUrl, lmsLicense.ConsumerKey, lmsLicense.SharedSecret,
                                                  outcomeSourceId))
                {
                    model.Score     = null;
                    ViewBag.Message = "Grade deleted";
                }
                else
                {
                    ViewBag.Message = "Invalid request";
                }
                break;
            }
            return(View("~/Views/Lti/Outcomes.cshtml", model));
        }
示例#14
0
        public async Task <OutcomeModel> SaveOutcome(OutcomeModel outcomeModel)
        {
            var outcome = await _outcomeService.SaveOutcomeAsync(outcomeModel);

            return(_mapper.Map <OutcomeModel>(outcome));
        }