Example #1
0
        protected bool ValidateSaveTpModel(TerraPointSaveModel model)
        {
            DateTime tpDay;
            if (!DateTime.TryParse(model.Day, CultureInfo.GetCultureInfo("ru-RU"), DateTimeStyles.None, out tpDay))
            {
                //ModelState.AddModelError(string.Empty, "Неправильная дата");
                model.Error = "Неправильная дата";
            }
            model.TpDay = tpDay;
            if (string.IsNullOrEmpty(model.Hours) && (tpDay.Date > DateTime.Today))
            {
                //ModelState.AddModelError("Hours", "Необходимо указать поле 'План'");
                model.Error = "Необходимо указать плановые часы";
                return false;
            }
            if (string.IsNullOrEmpty(model.FactHours) && (tpDay.Date < DateTime.Today))
            {
                //ModelState.AddModelError("Hours", "Необходимо указать поле 'План'");
                model.Error = "Необходимо указать фактические часы";
                return false;
            }
            if (string.IsNullOrEmpty(model.FactHours) && string.IsNullOrEmpty(model.Hours)
                && (tpDay.Date == DateTime.Today))
            {
                //ModelState.AddModelError("Hours", "Необходимо указать поле 'План'");
                model.Error = "Необходимо указать плановые или фактические часы";
                return false;
            }

            if (!string.IsNullOrEmpty(model.Hours))
            {
                decimal hours;
                if (!decimal.TryParse(model.Hours, out hours) || hours < 0 || hours > 24)
                {
                    //ModelState.AddModelError("Hours", "Поле 'План' должно быть целым числом от 0 до 24");
                    model.Error = "Плановые часы должны быть числом от 0 до 24";
                }
                else
                    model.TpHours = hours;
            }
            if (!string.IsNullOrEmpty(model.FactHours))
            {
                decimal hours;
                if (!decimal.TryParse(model.FactHours, out hours) || hours < 0 || hours > 24)
                {
                    //ModelState.AddModelError("Hours", "Поле 'План' должно быть целым числом от 0 до 24");
                    model.Error = "Фактические часы быть числом от 0 до 24";
                }
                else
                    model.TpFactHours = hours;
            }
            return string.IsNullOrEmpty(model.Error);
        }
Example #2
0
        public ContentResult SaveTerraPoint(int pointId, int id, int userId, string day, string hours, int credits, int factCredits,
            int factPointId, string factHours)
        {
            TerraPointSaveModel model = new TerraPointSaveModel
                                            {
                                                Id = id,
                                                IsCreditAvailable = credits,
                                                IsFactCreditAvailable = factCredits,
                                                Day = day,
                                                Hours = hours,
                                                PointId = pointId,
                                                UserId = userId,
                                                FactHours = factHours,
                                                FactPointId = factPointId,
                                            };

            try
            {
                if (ValidateSaveTpModel(model))
                {
                    // Если дата точки больше текущей даты, Факт заполняется значениями из Плана
                    if(model.TpDay.Date > DateTime.Today)
                    {
                        model.FactPointId = model.PointId;
                        model.FactHours = model.Hours;
                        model.TpFactHours = model.TpHours;
                        model.IsFactCreditAvailable = model.IsCreditAvailable;
                    }
                    RequestBl.SaveTerraPoint(model);
                }
            }
            catch (Exception ex)
            {
                Log.Error("Exception on SaveTerraPoint:", ex);
                string error = ex.GetBaseException().Message;
                model.Error = string.Format("Ошибка: {0}", error);
            }
            var jsonSerializer = new JavaScriptSerializer();
            string jsonString = jsonSerializer.Serialize(model);
            return Content(jsonString);
        }