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")); }
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); }