示例#1
0
        /// <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));
        }
示例#4
0
        /// <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);
        }
示例#8
0
        /// <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);
        }