public async Task <ActionResult> WriteMessage([FromBody] Message message)
        {
            var results = new GenericReturnObject();

            try
            {
                if (String.IsNullOrEmpty(message.Content))
                {
                    results.Message = "Message has no content";
                    results.Success = false;
                    return(BadRequest());
                }
                else
                {
                    message.TimeSent = DateTimeOffset.Now;
                    results.Success  = await _messageService.SendMessage(message);

                    if (results.Success)
                    {
                        await _messageClient.Clients.All.SendAsync("ReceiveMessage", new MessageReceivedDTO
                        {
                            From = message.From,
                            To   = message.To
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                results.Success = false;
                results.Message = ex.Message;
            }
            return(Ok(results));
        }
        public async Task <ActionResult> GetUserMessages([FromQuery] Guid user_id, [FromQuery] Guid contact_id)
        {
            var results = new GenericReturnObject <List <ConversationDTO> >();

            try
            {
                if (user_id == Guid.Empty)
                {
                    results.Message = "Invalid userid";
                    results.Success = false;
                    return(BadRequest(results));
                }
                if (contact_id == Guid.Empty)
                {
                    results.Message = "Invalid contactid";
                    results.Success = false;
                    return(BadRequest(results));
                }
                results.Success = true;
                results.Values  = await _messageService.GetMessageList(user_id, contact_id);
            }
            catch (Exception ex)
            {
                results.Success = false;
                results.Message = ex.Message;
            }
            return(Ok(JsonConvert.SerializeObject(results)));
        }
Пример #3
0
        public async Task <ActionResult> GetUser([FromQuery] Guid user_id)
        {
            var results = new GenericReturnObject <UserDTO>();

            try
            {
                if (user_id == Guid.Empty)
                {
                    results.Message = "Invalid userid";
                    results.Success = false;
                    return(BadRequest(results));
                }
                var user = await _userService.GetUser(user_id);

                if (user == default)
                {
                    results.Message = "User doesn't exist";
                    results.Success = false;
                    return(BadRequest(results));
                }
                results.Values = _mapper.Map <User, UserDTO>(user);
            }
            catch (Exception ex)
            {
                results.Success = false;
                results.Message = ex.Message;
            }
            return(Ok(JsonConvert.SerializeObject(results)));
        }
Пример #4
0
        public async Task <ActionResult> SearchContactByName([FromQuery] Guid user_id, [FromQuery] string contact_name)
        {
            var results = new GenericReturnObject <List <UserDTO> >();

            try
            {
                if (user_id == Guid.Empty || String.IsNullOrEmpty(contact_name))
                {
                    results.Success = false;
                    return(BadRequest(results));
                }
                var userMakingRequest = await _userService.GetUser(user_id);

                if (userMakingRequest == default)
                {
                    results.Success = false;
                    return(BadRequest(results));
                }
                var userList = await _userService.GetUserByName(contact_name, user_id);

                //TODO FIX MAPPING HERE
                results.Values = userList.Select(x => new UserDTO
                {
                    UserName = x.UserName,
                    Id       = x.Id
                }).ToList();
            }
            catch (Exception ex)
            {
                results.Success = false;
                results.Message = ex.Message;
            }
            return(Ok(JsonConvert.SerializeObject(results)));
        }
Пример #5
0
        public async Task <ActionResult> AddContact([FromBody] ContactDTO contact)
        {
            var results = new GenericReturnObject();

            try
            {
                if (contact.ContactId == Guid.Empty)
                {
                    results.Success = false;
                    results.Message = "Empty Contact ID";
                    return(BadRequest(JsonConvert.SerializeObject(results)));
                }
                ;
                if (contact.UserId == Guid.Empty)
                {
                    results.Success = false;
                    results.Message = "Empty UserId";
                    return(BadRequest(JsonConvert.SerializeObject(results)));
                }
                ;

                var userRequestingToAddContact = await _userService.GetUser(contact.UserId);

                if (userRequestingToAddContact == default)
                {
                    results.Success = false;
                    results.Message = "User doesn't exist";
                    return(BadRequest(JsonConvert.SerializeObject(results)));
                }

                var contactToAdd = await _userService.GetUser(contact.ContactId);

                if (contactToAdd == default)
                {
                    results.Success = false;
                    results.Message = "Contact doesn't exist";
                    return(BadRequest(JsonConvert.SerializeObject(results)));
                }
                var addContactResults = await _contactService.AddContact(new Contact
                {
                    ContactId = contact.ContactId,
                    UserId    = contact.UserId
                });

                if (!addContactResults.Item1)
                {
                    results.Success = false;
                    results.Message = addContactResults.Item2; //Fix later with more legible code
                    return(BadRequest(JsonConvert.SerializeObject(results)));
                }
            }
            catch (Exception ex)
            {
                results.Success = false;
                results.Message = ex.Message;
            }
            results.Success = true;
            return(Ok(JsonConvert.SerializeObject(results)));
        }
Пример #6
0
        public async Task <ActionResult> GetNewUser()
        {
            var results = new GenericReturnObject <UserDTO>();

            try
            {
                var userColor      = ColorList.ReturnRandomColor();
                var userAnimal     = AnimalList.ReturnAnimal();
                var profilePicture = Images.ReturnRandomImage();

                var userName = $"{ userColor.Item1} { userAnimal }";
                var newUser  = new User
                {
                    Id              = Guid.NewGuid(),
                    LastTimeLogged  = DateTimeOffset.Now,
                    Password        = Guid.NewGuid().ToString(),
                    UserName        = userName,
                    PrimaryColorHex = userColor.Item2,
                    Icon            = profilePicture
                };
                var dbUser = _userService.GetUser(newUser.UserName);
                while (dbUser != default)
                {
                    var retryNewUser = new User
                    {
                        Id              = Guid.NewGuid(),
                        LastTimeLogged  = DateTimeOffset.Now,
                        Password        = Guid.NewGuid().ToString(),
                        UserName        = userName,
                        PrimaryColorHex = userColor.Item2,
                        Icon            = profilePicture
                    };
                    dbUser = _userService.GetUser(retryNewUser.UserName);
                }
                results.Success = await _userService.CreateUser(newUser);

                results.Values = new UserDTO
                {
                    UserName        = newUser.UserName,
                    Id              = newUser.Id,
                    LastLogin       = newUser.LastTimeLogged.Date.ToShortDateString(),
                    PrimaryColorHex = userColor.Item2,
                    Icon            = profilePicture
                };
            }
            catch (Exception ex)
            {
                results.Success = false;
                results.Message = ex.Message;
            }
            return(Ok(JsonConvert.SerializeObject(results)));
        }
Пример #7
0
        public async Task <ActionResult> GetUser([FromQuery] Guid user_id)
        {
            var results = new GenericReturnObject <UserDTO>();

            try
            {
                if (user_id == Guid.Empty)
                {
                    results.Message = "Invalid userid";
                    results.Success = false;
                    return(BadRequest(results));
                }
                var user = await _userService.GetUser(user_id);

                if (user == default)
                {
                    results.Message = "User doesn't exist";
                    results.Success = false;
                    return(BadRequest(results));
                }
                //Normally we'd use automapper but let's keep it simple
                results.Values = new UserDTO
                {
                    Id              = user.Id,
                    ProfilePicture  = user.ProfilePicture,
                    PrimaryColorHex = user.PrimaryColorHex,
                    UserName        = user.UserName
                };
            }
            catch (Exception ex)
            {
                results.Success = false;
                results.Message = ex.Message;
            }
            return(Ok(JsonConvert.SerializeObject(results)));
        }