Example #1
0
        public JsonResult GetUserConversation(int id)
        {
            if (HttpContext.LoginId() > 0)
            {
                using (var c = new WebChat())
                {
                    var conv = c.GetConversationBetween(
                        c.Users
                        .Where(u =>
                               u.Id == id ||
                               u.Id == HttpContext.LoginId()
                               )
                        );
                    if (conv == null)
                    {
                        conv = new Conversations();

                        var p1 = new ConversationParticipants
                        {
                            UserId = HttpContext.LoginId()
                        };
                        conv.ConversationParticipants.Add(p1);

                        var p2 = new ConversationParticipants
                        {
                            UserId = id
                        };
                        conv.ConversationParticipants.Add(p2);

                        c.Add(conv);
                        c.SaveChanges();

                        conv = c.GetConversationBetween(
                            c.Users
                            .Where(u =>
                                   u.Id == id ||
                                   u.Id == HttpContext.LoginId()
                                   )
                            );
                    }

                    return(new JsonResult(new { id = conv.Id }));
                }
            }
            return(new JsonResult(""));
        }
Example #2
0
        public async Task <Tuple <HttpStatusCode, int> > CreateConversation(int localUserId, List <int> participants)
        {
            int conversationId = -1;

            // Check connection
            if (!ServerConfig.Instance.IsConnectedToInternet())
            {
                return(new Tuple <HttpStatusCode, int>(HttpStatusCode.ServiceUnavailable, conversationId));
            }

            String     url    = ServerConfig.Instance.serverAddress;
            HttpClient client = ServerConfig.Instance.client;

            ConversationParticipants conversationParticipants = new ConversationParticipants
            {
                participants = participants
            };

            var request = new HttpRequestMessage(new HttpMethod("POST"), url + "/clinicians/" + localUserId + "/conversations");

            request.Content = new StringContent(JsonConvert.SerializeObject(conversationParticipants));

            request.Headers.Add("token",
                                ClinicianController.Instance.isLoggedIn()
                    ? ClinicianController.Instance.AuthToken
                    : UserController.Instance.AuthToken);


            HttpResponseMessage response;

            try
            {
                response = await client.SendAsync(request);
            }
            catch (HttpRequestException)
            {
                return(new Tuple <HttpStatusCode, int>(HttpStatusCode.ServiceUnavailable, conversationId));
            }

            if (response.StatusCode == HttpStatusCode.Created)
            {
                conversationId = Int32.Parse(await response.Content.ReadAsStringAsync());
            }

            return(new Tuple <HttpStatusCode, int>(response.StatusCode, conversationId));
        }