Пример #1
0
        public IActionResult RemoveMember(RadMemberModel member)
        {
            var memberDictionary = Session
                                   .GetObjectFromJson <Dictionary <string, RadMemberModel> >(member.GridId.ToString());

            if (memberDictionary.ContainsKey(member.MemberName))
            {
                memberDictionary.Remove(member.MemberName);
                return(Json(
                           new
                {
                    Message =
                        $"{member.MemberName} has been removed."
                }));
            }
            Response.StatusCode = (int)HttpStatusCode.NotFound;
            return(Json(
                       new
            {
                Message =
                    $"{member.MemberName} does not exist inside this grid! Add them!"
            }));
        }
Пример #2
0
        public async Task <IActionResult> AddMember(RadMemberModel member)
        {
            var memberDictionary = Session
                                   .GetObjectFromJson <Dictionary <string, RadMemberModel> >(member.GridId.ToString());
            var takenNumbers = (await _radSql.GetMemberNumbersForGridAsync(member.GridId)).Select(x => x.Key);

            var allTakenNumbers = memberDictionary?.SelectMany(x => x.Value.GridNumbers).ToList() ?? new List <int>();

            allTakenNumbers.AddRange(takenNumbers);

            if (allTakenNumbers.Count + member.GridNumbers.Count > 100)
            {
                return(Json(new { Message = "The amount of numbers provided would put the total over the limit." }));
            }
            if (allTakenNumbers.Count == 100)
            {
                return(Json(new { Message = "There are no available numbers left!" }));
            }

            var duplicateNumbers = member.GridNumbers.Where(number => allTakenNumbers.Contains(number)).ToList();

            if (duplicateNumbers.Any())
            {
                Response.StatusCode = (int)HttpStatusCode.Found;
                return(Json(
                           new
                {
                    Message =
                        $"{member.MemberName} has not been added! Duplicate numbers found! {string.Join(",", duplicateNumbers)}"
                }));
            }

            if (memberDictionary != null)
            {
                var isMemberStored = memberDictionary.ContainsKey(member.MemberName.ToLower());
                if (isMemberStored)
                {
                    Response.StatusCode = (int)HttpStatusCode.Found;
                    return(Json(
                               new
                    {
                        Message =
                            $"{member.MemberName} has been added to this grid already. To change their numbers, remove and re-add them."
                    }));
                }

                memberDictionary.Add(member.MemberName, member);
                Session.SetObjectAsJson(member.GridId.ToString(), memberDictionary);
            }
            else
            {
                memberDictionary = new Dictionary <string, RadMemberModel>
                {
                    { member.MemberName.ToLower(), member }
                };
            }
            Session.SetObjectAsJson(member.GridId.ToString(), memberDictionary);
            return(Json(
                       new
            {
                Message =
                    $"{member.MemberName} has been added! If your session expires, you will lose this information! Make sure to save before exiting."
            }));
        }