public async Task <IActionResult> AddUserContactByEmail([FromBody] UserContactModel userContactModel)
        {
            User user = await GetUserAsync().ConfigureAwait(false);

            // find other user
            User contact = await userManager.FindByEmailAsync(userContactModel.ContactEmail);

            if (contact == null)
            {
                return(BadRequest("No user with specified email found"));
            }

            try
            {
                userContactRepository.Add(new UserContact
                {
                    OwnerId   = user.Id,
                    ContactId = contact.Id
                });

                return(Ok());
            }
            catch (ArgumentException e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#2
0
        public IActionResult Post([FromBody] UserContactModel model)
        {
            try
            {
                if (!string.IsNullOrEmpty(model.Id))
                {
                    //Check Empty Guid
                    Guid userid = new Guid(model.Id);
                    if (userid != Guid.Empty)
                    {
                        //Update
                        APIReturnModel update = UserContactServices.SaveUserContacts(model);
                        return(Ok(new { data = update.Value, status = StatusMessages.Get(update.Status) }));
                    }
                    else
                    {
                        //Passed User ID is empty guid
                        return(Ok(new { data = string.Empty, status = StatusMessages.Error_UserUpdateFailed_GUID }));
                    }
                }
                else
                {
                    //Insert
                    APIReturnModel create = UserContactServices.SaveUserContacts(model);
                    return(Ok(new { data = create.Value, status = StatusMessages.Get(create.Status) }));
                }
            }
            catch
            {
            }

            return(Ok(new { data = string.Empty, status = StatusMessages.Error_Failed }));
        }
示例#3
0
        public async Task <UserContactModel> PostUserContact(UserContactModel model)
        {
            await _context.UserContacts.AddAsync(model);

            await _context.SaveChangesAsync();

            return(model);
        }
示例#4
0
        public async Task AddById_Should_Return_Ok_If_Contact_Id_Is_An_Existing_User()
        {
            UserContactModel model = ValidUserContactModel;

            HttpResponseMessage result = await Client.PostAsync(AddByIdPath, Stringify(model));

            Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK));
        }
示例#5
0
        public async Task AddByEmail_Should_Return_Bad_Request_If_ContactEmail_Is_Not_An_Existing_User()
        {
            UserContactModel model = ValidUserContactModel;

            model.ContactEmail = model.ContactEmail + "randomTextAndStuffs";

            HttpResponseMessage result = await Client.PostAsync(AddByEmailPath, Stringify(model));

            Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
        }
示例#6
0
        public bool AcceptFriendRequest(int contactId, int userId)
        {
            var userContact = new UserContactModel()
            {
                StatusId  = (int)Lookups.ContactStatuses.Accepted,
                UserId    = contactId,
                ContactId = userId,
            };

            return(_userContact.Update(userContact));
        }
示例#7
0
        public int AddFriendRequest(int contactId, int userId)
        {
            var userContact = new UserContactModel()
            {
                StatusId  = (int)Lookups.ContactStatuses.Requested,
                UserId    = userId,
                ContactId = contactId,
            };

            return(_userContact.Add(userContact));
        }
示例#8
0
        public async Task AddById_Should_Add_New_UserContact_To_Context()
        {
            UserContactModel model = ValidUserContactModel;
            int beforeCount        = Context.UserContacts.Count();

            await Client.PostAsync(AddByIdPath, Stringify(model));

            int afterCount = Context.UserContacts.Count();

            Assert.That(afterCount, Is.EqualTo(beforeCount + 1));
        }
示例#9
0
        public bool Update(UserContactModel model)
        {
            var userContact =
                _db.UserContacts.First(x => x.UserId == model.UserId && x.ContactId == model.ContactId);

            userContact.StatusId         = model.StatusId;
            userContact.LastUpdatedOn    = UnixTimeBaseClass.UnixTimeNow;
            _db.Entry(userContact).State = EntityState.Modified;
            _db.SaveChanges();

            return(true);
        }
示例#10
0
        public async Task Remove_Should_Return_Bad_Request_If_UserContact_Does_Not_Exists()
        {
            // remove all user contacts
            Context.UserContacts.RemoveRange(Context.UserContacts);

            UserContactModel model = ValidUserContactModel;

            model.ContactId = user.Id;

            HttpResponseMessage result = await Client.PostAsync(RemovePath, Stringify(model));

            Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
        }
示例#11
0
        public int Add(UserContactModel model)
        {
            var contact = new UserContact()
            {
                UserId    = model.UserId,
                ContactId = model.ContactId,
                StatusId  = model.StatusId,
                CreatedOn = UnixTimeBaseClass.UnixTimeNow
            };

            _db.UserContacts.Add(contact);
            _db.SaveChanges();

            return(contact.UserContactId);
        }
示例#12
0
        public async Task AddById_Should_Return_Bad_Request_If_UserContact_Already_Exists()
        {
            Context.UserContacts.Add(new UserContact
            {
                ContactId = user.Id,
                OwnerId   = user.Id,
            });
            Context.SaveChanges();

            UserContactModel model = ValidUserContactModel;

            HttpResponseMessage result = await Client.PostAsync(AddByIdPath, Stringify(model));

            Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
        }
        private async Task <bool> SetNewEmailContactAsync(ApplicationUser appUser, UserContactModel emailContact,
                                                          IConvertibleToUserContacts userContracts)
        {
            if (emailContact != null && emailContact.Value != userContracts.Email
                ) //TODO It can happen that this check wont work before new contact is formatted, move this to manager
            {
                emailContact.Value       = userContracts.Email;
                emailContact.ConfirmCode = await m_identityUserManager.GenerateEmailConfirmationTokenAsync(appUser);

                appUser.Email            = emailContact.Value; //Save new values to appuser instance for future send of confirm code
                appUser.EmailConfirmCode = emailContact.ConfirmCode;

                return(true);
            }

            return(false);
        }
示例#14
0
        public async Task Remove_Should_Return_Bad_Request_If_ContactId_Is_Not_An_Existing_User()
        {
            Context.UserContacts.Add(new UserContact
            {
                ContactId = user.Id,
                OwnerId   = user.Id,
            });
            Context.SaveChanges();

            UserContactModel model = ValidUserContactModel;

            model.ContactId = -5;

            HttpResponseMessage result = await Client.PostAsync(RemovePath, Stringify(model));

            Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest));
        }
示例#15
0
        public async Task Remove_Should_Return_Ok_If_Contact_Id_Is_An_Existing_User()
        {
            UserContact userContact = new UserContact
            {
                ContactId = user.Id,
                OwnerId   = user.Id,
            };

            Context.UserContacts.Add(userContact);
            Context.SaveChanges();

            UserContactModel    model  = ValidUserContactModel;
            HttpResponseMessage result = await Client.PostAsync(RemovePath, Stringify(model));

            await result.Content.ReadAsStringAsync();

            Assert.That(result.StatusCode, Is.EqualTo(HttpStatusCode.OK));
        }
示例#16
0
        public async Task Remove_Should_Remove_Existing_UserContact_From_Context()
        {
            Context.UserContacts.Add(new UserContact
            {
                ContactId = user.Id,
                OwnerId   = user.Id,
            });
            Context.SaveChanges();

            UserContactModel model = ValidUserContactModel;
            int beforeCount        = Context.UserContacts.Count();

            await Client.PostAsync(RemovePath, Stringify(model));

            int afterCount = Context.UserContacts.Count();

            Assert.That(afterCount, Is.EqualTo(beforeCount - 1));
        }
示例#17
0
        public ActionResult AddContact(Guid userId)
        {
            var repository = CurrentAccountDbContext.GetUserRepository();
            var user       = repository.GetById(userId);

            if (!CurrentUser.CanManageAccount() && user.Id != CurrentUser.Id)
            {
                throw new NoAccessToPageException();
            }

            var model = new UserContactModel()
            {
                ModalMode = Request.IsAjaxRequest(),
                ReturnUrl = Url.Action("Edit", new { id = userId.ToString() }),
                UserId    = user.Id
            };

            return(View(model));
        }
        public async Task <IActionResult> RemoveUserContact([FromBody] UserContactModel userContactModel)
        {
            User user = await GetUserAsync().ConfigureAwait(false);

            try
            {
                userContactRepository.Delete(new UserContact
                {
                    OwnerId   = user.Id,
                    ContactId = userContactModel.ContactId
                });

                return(Ok());
            }
            catch (ArgumentException e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#19
0
        public ActionResult EditContact(Guid id)
        {
            var repository = CurrentAccountDbContext.GetUserRepository();
            var contact    = repository.GetContactById(id);

            if (!CurrentUser.CanManageAccount() && contact.UserId != CurrentUser.Id)
            {
                throw new NoAccessToPageException();
            }

            var model = new UserContactModel()
            {
                ModalMode = Request.IsAjaxRequest(),
                ReturnUrl = Url.Action("Edit", new { id = contact.UserId.ToString() }),
                Id        = id,
                UserId    = contact.UserId,
                Type      = contact.Type,
                Value     = contact.Value
            };

            return(View(model));
        }
示例#20
0
        public ActionResult EditContact(UserContactModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var repository = CurrentAccountDbContext.GetUserRepository();
            var contact    = repository.GetContactById(model.Id);

            if (!CurrentUser.CanManageAccount() && contact.UserId != CurrentUser.Id)
            {
                throw new NoAccessToPageException();
            }

            repository.EditContactById(model.Id, model.Type, model.Value);

            if (model.ModalMode)
            {
                return(PartialView("UserContactData", contact));
            }

            return(Redirect(model.ReturnUrl));
        }
示例#21
0
        public ActionResult AddContact(UserContactModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var repository = CurrentAccountDbContext.GetUserRepository();
            var userId     = model.UserId;
            var user       = repository.GetById(userId);

            if (!CurrentUser.CanManageAccount() && user.Id != CurrentUser.Id)
            {
                throw new NoAccessToPageException();
            }

            var contact = repository.AddContactToUser(user.Id, model.Type, model.Value, MvcApplication.GetServerDateTime());

            if (model.ModalMode)
            {
                return(PartialView("UserContactRow", contact));
            }

            return(Redirect(model.ReturnUrl));
        }
        public async Task <IActionResult> AddUserContactById([FromBody] UserContactModel userContactModel)
        {
            User user = await GetUserAsync().ConfigureAwait(false);

            if (await userManager.FindByIdAsync(userContactModel.ContactId.ToString()) == null)
            {
                return(BadRequest("No user with specified id found"));
            }

            try
            {
                userContactRepository.Add(new UserContact
                {
                    OwnerId   = user.Id,
                    ContactId = userContactModel.ContactId
                });

                return(Ok());
            }
            catch (ArgumentException e)
            {
                return(BadRequest(e.Message));
            }
        }
 public bool ValidateContact(UserContactModel contact)
 {
     return(m_contactValidatorsDict[contact.Type].Validate(contact.Value));
 }
        /// <summary>
        /// 1= Success, 0= Failed, 4= User Not Found
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public APIReturnModel SaveUserContacts(UserContactModel model)
        {
            try
            {
                UserContact contacts = new UserContact();
                bool        isupdate = false;
                //Check user id is provided
                if (!string.IsNullOrEmpty(model.UserId))
                {
                    //Check user id exists in db
                    SystemUser chkexisting = Db.SystemUsers.FirstOrDefault(d => d.Id == model.UserId && !d.IsArchived);
                    if (chkexisting != null)
                    {
                        contacts = Db.UserContacts.FirstOrDefault(d => d.Id == model.Id);

                        if (contacts == null)
                        {
                            contacts = new UserContact
                            {
                                Id = Guid.NewGuid().ToString()
                            };
                        }
                        else
                        {
                            isupdate = true;
                        }

                        contacts.UserId             = model.UserId;
                        contacts.ContactPhone       = model.ContactPhone;
                        contacts.ContactName        = model.ContactName;
                        contacts.ContactDescription = model.ContactDescription;

                        contacts.IsArchived = false;

                        if (!isupdate)
                        {
                            Db.UserContacts.Add(contacts);
                        }
                        Db.SaveChanges();

                        return(new APIReturnModel {
                            Status = 1, Value = contacts.Id
                        });
                    }
                    else
                    {
                        return new APIReturnModel {
                                   Status = 4
                        }
                    };
                }
                else
                {
                    return new APIReturnModel {
                               Status = 4
                    }
                };
            }
            catch (Exception ex)
            {
                return(new APIReturnModel {
                    Status = 0
                });
            }
        }