예제 #1
0
        public async Task RemoveContactsFromLists_ListDoesntExist()
        {
            //Arange
            int validContactId        = 1;
            int listIdThatDoesntExist = 10;

            var model = new ContactListDTO()
            {
                ContactIds = new List <int>()
                {
                    validContactId
                },
                ListIds = new List <int>()
                {
                    listIdThatDoesntExist
                }
            };

            //Act
            var controller   = new ContactController(_serviceBusMock.Object, _contactContext.Object);
            var actionResult = await controller.RemoveContactsFromLists(model);

            //Assert
            var result = Assert.IsType <BadRequestResult>(actionResult);

            Assert.Equal((int)System.Net.HttpStatusCode.BadRequest, result.StatusCode);
        }
예제 #2
0
        public async Task RemoveContactsFromLists_Ok()
        {
            //Arange
            int validContactId = 1;
            int validListId    = 2;

            var model = new ContactListDTO()
            {
                ContactIds = new List <int>()
                {
                    validContactId
                },
                ListIds = new List <int>()
                {
                    validListId
                }
            };

            //Act
            var controller   = new ContactController(_serviceBusMock.Object, _contactContext.Object);
            var actionResult = await controller.RemoveContactsFromLists(model);

            //Assert
            var result = Assert.IsType <OkResult>(actionResult);

            Assert.Equal((int)System.Net.HttpStatusCode.OK, result.StatusCode);
        }
예제 #3
0
        public async Task <object> GetAllContact()
        {
            try
            {
                var result = dataContext.contacts.Select(x => new Contact
                {
                    ContactEmail   = x.ContactEmail,
                    ContactMessage = x.ContactMessage,
                    Time           = x.Time,
                    CauseId        = x.CauseId
                });

                var ContactListDTO = new ContactListDTO
                {
                    contacts = result.ToList()
                };
                res.Data    = ContactListDTO;
                res.Message = "List of Contact";
                res.Success = true;
                return(res);
            }
            catch (Exception ex)
            {
                throw;
            }
        }
예제 #4
0
        public async Task RemoveContactsFromLists(ContactListDTO model)
        {
            var uri = API.Contact.RemoveContactsFromLists(_remoteServiceBaseUrl);

            var content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");

            var response = await _httpClient.PostAsync(uri, content);

            response.EnsureSuccessStatusCode();
        }
예제 #5
0
        public async Task RemoveContactsFromLists_BadRequest_ModelNotValid()
        {
            //Arange
            var model = new ContactListDTO();

            //Act
            var controller   = new ContactController(_serviceBusMock.Object, _contactContext.Object);
            var actionResult = await controller.RemoveContactsFromLists(model);

            //Assert
            var result = Assert.IsType <BadRequestObjectResult>(actionResult);

            Assert.Equal((int)System.Net.HttpStatusCode.BadRequest, result.StatusCode);
            Assert.IsType <SerializableError>(result.Value);
        }
예제 #6
0
        public async Task <IActionResult> RemoveFromLists(ContactListViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.Contacts        = model.ContactIds.Select(c => new SelectListItem("", c.ToString())).ToList();
                model.ContactsString  = GetSelectedContactsString(model.ContactIds);
                model.ListsOfContacts = GetListsOfContacts(model.ContactIds);
            }

            var dto = new ContactListDTO
            {
                ContactIds = model.ContactIds,
                ListIds    = model.ListIds
            };

            await _contactService.RemoveContactsFromLists(dto);

            TempData.Put("Toast", new Toast(ToastType.Success, string.Format(_stringLocalizer["Contacts are successfully removed from lists"])));
            return(RedirectToAction(nameof(Index)));
        }
예제 #7
0
        public async Task <IActionResult> AddContacts(ContactListViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.Contacts    = (await _contactService.GetContacts()).Select(c => new SelectListItem(c.FirstName + " " + c.LastName + "(" + c.Email + ")", c.Id.ToString())).ToList();
                model.Lists       = model.ListIds.Select(c => new SelectListItem("", c.ToString())).ToList();
                model.ListsString = GetSelectedListsString(model.ListIds.ToList());
                return(View(model));
            }

            var dto = new ContactListDTO
            {
                ContactIds = model.ContactIds,
                ListIds    = model.ListIds
            };

            await _contactService.AddContactsToLists(dto);

            TempData.Put("Toast", new Toast(ToastType.Success, string.Format(_stringLocalizer["Contacts are successfully added to lists"])));
            return(RedirectToAction(nameof(Index)));
        }
예제 #8
0
        public async Task <object> GetContatByUserEmail(string Email)
        {
            try
            {
                var result = dataContext.contacts.Where(x => x.ContactEmail == Email.ToString()).AsQueryable().Select(x => new Contact
                {
                    ContactEmail   = x.ContactEmail,
                    CauseId        = x.CauseId,
                    ContactMessage = x.ContactMessage,
                    Time           = x.Time
                });
                var list = new ContactListDTO
                {
                    contacts = result.ToList()
                };

                if (list == null)
                {
                    res.Data    = null;
                    res.Message = "No Contact found by this user was found";
                    res.Success = false;
                    return(res);
                }
                else
                {
                    res.Data    = list;
                    res.Message = "List of Contact made by this user returned";
                    res.Success = true;
                    return(res);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
예제 #9
0
        public async Task <IActionResult> RemoveContactsFromLists(ContactListDTO model)
        {
            if (model.ContactIds == null || model.ListIds == null)
            {
                ModelState.AddModelError("ContactIds", "Select at least one contact");
                ModelState.AddModelError("ListIds", "Select at least one list");
                return(BadRequest(ModelState));
            }

            List <Models.Contact> contacts = new List <Models.Contact>();

            //go through all passed contactIds
            foreach (var contactId in model.ContactIds)
            {
                //find contact
                var contact = await _contactContext.Contacts.Include(c => c.ContactLists).SingleOrDefaultAsync(c => c.Id == contactId);

                if (contact == null)
                {
                    return(BadRequest());
                }
                contacts.Add(contact);
            }

            List <List> lists = new List <List>();

            //go through all passed listIds
            foreach (var listId in model.ListIds)
            {
                //find list
                var list = await _contactContext.Lists.SingleOrDefaultAsync(l => l.Id == listId);

                if (list == null)
                {
                    return(BadRequest());
                }
                lists.Add(list);
            }

            foreach (var contact in contacts)
            {
                foreach (var list in lists)
                {
                    var contactList = await _contactContext.ContactLists.SingleOrDefaultAsync(c => c.FContact == contact.Id && c.FList == list.Id);

                    if (contactList != null)
                    {
                        _contactContext.ContactLists.Remove(contactList);
                    }
                }
            }

            try
            {
                await _contactContext.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception)
            {
                return(StatusCode((int)HttpStatusCode.InternalServerError));
            }
        }