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