Example #1
0
        public async Task <IActionResult> DeleteSearch(string username)
        {
            string accessToken = await HttpContext.GetTokenAsync("access_token");

            AspNetUser currentUser = null;
            HttpClient client      = new HttpClient();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
            string userString = await client.GetStringAsync(Configuration["URLAPI"] + "api/Account/getUserInfo");

            string us = username;

            currentUser = JsonConvert.DeserializeObject <AspNetUser>(userString);

            AspNetUser user = _context.AspNetUsers.Where(d => d.UserName == username).Single();

            if (user == null)
            {
                return(BadRequest());
            }
            else
            {
                try
                {
                    UserLike       userLike = _context.UserLikes.Where(d => d.Id == currentUser.Id && d.Id1 == user.Id).Single();
                    Talk           talk     = _context.Talks.Where(t => t.Id == currentUser.Id && t.IdUser2Talk == user.Id).SingleOrDefault();
                    List <Message> messages = null;
                    if (talk == null)
                    {
                        talk = _context.Talks.Where(t => t.Id == user.Id && t.IdUser2Talk == currentUser.Id).SingleOrDefault();
                    }
                    if (talk != null)
                    {
                        messages = _context.Messages.Where(m => m.TalkId == talk.TalkId).ToList();
                    }
                    if (messages != null)
                    {
                        foreach (Message message in messages)
                        {
                            _context.Remove(message);
                        }
                    }
                    if (talk != null)
                    {
                        _context.Talks.Remove(talk);
                    }
                    _context.UserLikes.Remove(userLike);
                    _context.SaveChanges();
                    return(Ok());
                }
                catch (Exception)
                {
                    return(BadRequest());
                }
            }
        }