コード例 #1
0
        public IActionResult ApplicationPost([FromForm] NewAbitModel abit)
        {
            if (!validator.ValidatePlans(store.Plans, abit.PickedPlans, abit))
            {
                return(BadRequest());
            }

            ViewData["applicationId"] = store.CreateAbit($"{abit.LastName} {abit.FirstName} {abit.MiddleName}", abit.SerializationString);

            return(View("ApplicationSuccess"));
        }
コード例 #2
0
        private const byte MIN_RAW_FIN_TYPES_LENGHT = 3; //с-0

        public bool ValidatePlans(IDictionary <long, IPlanEntry> plans, IEnumerable <long> plansId, NewAbitModel abit)
        {
            if (abit.RawFinTypes.Length < MIN_RAW_FIN_TYPES_LENGHT ||
                abit.FinTypes == null)
            {
                return(false);
            }

            IPlanEntry plan;
            var        selectedPlans = new List <IPlanEntry>(plansId.Count());

            foreach (var id in plansId)
            {
                if (!plans.TryGetValue(id, out plan))
                {
                    return(false);
                }

                selectedPlans.Add(plan);
            }

            if (!ValidatePlanSpots(plans, abit.FinTypes, plansId))
            {
                return(false);
            }

            if (selectedPlans.Select(p => p.Title.Code).Distinct().Count() > UNIQUE_CODES_COUNT)
            {
                return(false);
            }

            return(true);
        }