/// <summary> /// This method used for get group by id. -an /// </summary> /// <param name="id">passs group id</param> /// <returns>GroupAC object</returns> public async Task <GroupAC> GetGroupByIdAsync(int id) { Group group = (await _groupRepository.FirstOrDefaultAsync(x => x.Id == id)); if (group != null) { GroupAC groupAc = new GroupAC(); List <string> listOfEmails = new List <string>(); groupAc = _mapper.Map(group, groupAc); //get active user email list List <string> listOfActiveUserEmail = await GetActiveUserEmailListAsync(); List <GroupEmailMapping> groupEmailMappings = group.GroupEmailMapping.ToList(); foreach (var groupEmailMapping in groupEmailMappings) { if (listOfActiveUserEmail.Contains(groupEmailMapping.Email)) //check email is active or not. { listOfEmails.Add(groupEmailMapping.Email); } else { _groupEmailMappingRepository.Delete(groupEmailMapping.Id); await _groupEmailMappingRepository.SaveChangesAsync(); } } groupAc.Emails = listOfEmails; return(groupAc); } else { throw new GroupNotFound(); } }
public async Task <IHttpActionResult> InsertGroupAsync(GroupAC groupAC) { if (ModelState.IsValid) { return(Ok(await _groupRepository.AddGroupAsync(groupAC))); } return(BadRequest()); }
/// <summary> /// This method used for create Group /// </summary> /// <returns></returns> private async Task <int> CreateGroupAsync() { GroupAC group = new GroupAC(); List <string> listOfString = new List <string>(); listOfString.Add(_stringConstant.TestEmail); listOfString.Add(_stringConstant.SecondTestEmail); group.Emails = listOfString; group.Name = _stringConstant.GroupName; group.Type = 2; return(await _groupRepository.AddGroupAsync(group)); }
/// <summary> /// This method used for insert group and return Id. - an /// </summary> /// <param name="groupAC">pass groupAC</param> /// <returns>Primary key(Id)</returns> public async Task <int> AddGroupAsync(GroupAC groupAC) { Group group = new Group(); group = _mapper.Map(groupAC, group); group.CreatedOn = DateTime.UtcNow; _groupRepository.Insert(group); await _groupRepository.SaveChangesAsync(); await AddGroupEmailMappingAsync(groupAC.Emails, group.Id); return(group.Id); }
public async Task <IHttpActionResult> UpdateGroupAsync(int id, GroupAC groupAC) { try { if (ModelState.IsValid) { groupAC.Id = id; return(Ok(await _groupRepository.UpdateGroupAsync(groupAC))); } return(BadRequest()); } catch (GroupNotFound) { return(NotFound()); } }
public async Task CheckGroupNameIsExistsForUpdateAsync() { int id = await CreateGroupAsync(); GroupAC group = new GroupAC(); List <string> listOfString = new List <string>(); listOfString.Add(_stringConstant.TestEmail); listOfString.Add(_stringConstant.SecondTestEmail); group.Emails = listOfString; group.Name = _stringConstant.NameForTest; group.Type = 2; int newId = await _groupRepository.AddGroupAsync(group); bool isExists = await _groupRepository.CheckGroupNameIsExistsAsync(_stringConstant.GroupName, newId); Assert.Equal(isExists, true); }
public async Task UpdateGroupExceptionAsync() { await CreateUserAndMockingHttpContextToReturnAccessToken(); int id = await CreateGroupAsync(); var group = await _groupRepository.GetGroupByIdAsync(id); GroupAC newGroupAC = new GroupAC(); newGroupAC.Name = _stringConstant.NameForTest; newGroupAC.Id = 2; newGroupAC.Type = 1; List <string> listOfString = new List <string>(); listOfString.Add(_stringConstant.TestEmail); listOfString.Add(_stringConstant.SecondTestEmail); newGroupAC.Emails = listOfString; Assert.Throws <AggregateException>(() => _groupRepository.UpdateGroupAsync(newGroupAC).Result); }
/// <summary> /// This method used for update group and return Id. - an /// </summary> /// <param name="groupAC">pass groupAC</param> /// <returns>Primary key(Id)</returns> public async Task <int> UpdateGroupAsync(GroupAC groupAC) { Group group = await _groupRepository.FirstOrDefaultAsync(x => x.Id == groupAC.Id && x.Type == 2); if (group != null) { group.Name = groupAC.Name; group.UpdatedDate = DateTime.UtcNow; _groupRepository.Update(group); await _groupRepository.SaveChangesAsync(); _groupEmailMappingRepository.RemoveRange(x => x.GroupId == groupAC.Id); await AddGroupEmailMappingAsync(groupAC.Emails, groupAC.Id); return(groupAC.Id); } else { throw new GroupNotFound(); } }
public async Task UpdateGroupAsync() { await CreateUserAndMockingHttpContextToReturnAccessToken(); int id = await CreateGroupAsync(); var group = await _groupRepository.GetGroupByIdAsync(id); GroupAC newGroupAC = new GroupAC(); newGroupAC.Name = _stringConstant.NameForTest; newGroupAC.Id = group.Id; newGroupAC.Type = group.Type; List <string> listOfString = new List <string>(); listOfString.Add(_stringConstant.TestEmail); listOfString.Add(_stringConstant.SecondTestEmail); newGroupAC.Emails = listOfString; int newId = await _groupRepository.UpdateGroupAsync(newGroupAC); Assert.Equal(id, newId); }