示例#1
0
    private void AddStatistic(string title, string progress, float fillPercentage)
    {
        if (contentPanelHeigth > 0)
        {
            AddDivider();
        }
        GameObject      statisticsGroupObject = GameObject.Instantiate(statisticsGroupPrefab);
        StatisticsGroup statisticsGroup       = statisticsGroupObject.GetComponent <StatisticsGroup>();

        statisticsGroup.title = title;
        if (fillPercentage == -1f)
        {
            statisticsGroup.progress       = progress;
            statisticsGroup.fillPercentage = fillPercentage;
        }
        else
        {
            statisticsGroup.progress       = progress + " (" + fillPercentage.ToString("n2") + "%)";
            statisticsGroup.fillPercentage = fillPercentage;
        }
        statisticsGroupObject.transform.SetParent(contentPanel.transform);
        statisticsGroupObject.transform.localScale = new Vector3(1f, 1f, 1f);
        RectTransform phRectTransform = contentPanel.GetComponent <RectTransform>();

        contentPanelHeigth       += statisticsGroupHeight;
        phRectTransform.sizeDelta = new Vector2(phRectTransform.sizeDelta.x, contentPanelHeigth);
    }
 private void UpdateStatisticsGroup(StatisticsGroup statisticsGroup)
 {
     _session.CreateSQLQuery(@"
             UPDATE StatisticsGroup SET Name=:name
             WHERE Id=:statisticsGroupId")
     .SetParameter("name", statisticsGroup.Name)
     .SetParameter("statisticsGroupId", statisticsGroup.Id)
     .ExecuteUpdate();
 }
        public ActionResult Create(int groupId)
        {
            var statisticsGroup = new StatisticsGroup {
                TargetGroupId = groupId
            };
            var model = CreateStatisticsGroupEditModel(statisticsGroup);

            return(View("Edit", model));
        }
        private StatisticsGroupEditView CreateStatisticsGroupEditModel(StatisticsGroup statisticsGroup)
        {
            var users = _userProvider.GetUsersByGroup(statisticsGroup.TargetGroupId);

            return(new StatisticsGroupEditView
            {
                Group = _groupProvider.GetById(statisticsGroup.TargetGroupId),
                StatisticsGroup = statisticsGroup,
                UsersDict = users.ToDictionary(u => u.VkUserId)
            });
        }
        public void Save(StatisticsGroup statisticsGroup)
        {
            if (!statisticsGroup.Id.HasValue)
            {
                AddStatisticsGroup(statisticsGroup);
            }
            else
            {
                UpdateStatisticsGroup(statisticsGroup);
            }

            UpdateStatisticsGroupUsers(statisticsGroup);
        }
        public ActionResult Save(StatisticsGroup input)
        {
            if (IsValid(input, out var errorMessage))
            {
                _statisticsProvider.Save(input);
                return(RedirectToAction("ForGroup", new { groupId = input.TargetGroupId }));
            }

            var model = CreateStatisticsGroupEditModel(input);

            model.ErrorMessage = errorMessage;

            return(View("Edit", model));
        }
        private bool IsValid(StatisticsGroup input, out string error)
        {
            if (string.IsNullOrEmpty(input.Name))
            {
                error = "Name should not be empty";
                return(false);
            }

            if (input.SelectedUsers == null || !input.SelectedUsers.Any())
            {
                error = "No selected users";
                return(false);
            }

            error = null;
            return(true);
        }
        private void UpdateStatisticsGroupUsers(StatisticsGroup statisticsGroup)
        {
            var statisticsGroupId = statisticsGroup.Id.Value;

            RemoveStatisticsGroupUsers(statisticsGroupId);

            var insertSql = new StringBuilder();

            foreach (var userId in statisticsGroup.SelectedUsers)
            {
                insertSql.AppendLine(
                    $"INSERT INTO StatisticsGroupUsers (StatisticsGroupId, UserId) VALUES ({statisticsGroupId},{userId})");
            }

            _session
            .CreateSQLQuery(insertSql.ToString())
            .ExecuteUpdate();
        }