Example #1
0
        public List <ActivityFeed> getListActivityFeedOfUser(string userName, decimal conferenceId, int page = 1, int pageSize = 10)
        {
            var activityFeeds = (from n in db.MESSAGE_FEED
                                 join a in db.ACCOUNTs on n.UserName equals a.UserName
                                 where n.UserName == userName && n.CONFERENCE_ID == conferenceId && n.REPLYING_TO_MESSAGE_FEED_ID == null &&
                                 n.PUBLIC_OR_PRIVATE_MESSAGE == "PUBLIC" && (n.DELETED == false || n.DELETED == null)
                                 select new { n, a }
                                 ).AsEnumerable()
                                .Select(x => new ActivityFeed()
            {
                MESSAGE_FEED_ID             = x.n.MESSAGE_FEED_ID,
                UserName                    = x.n.UserName,
                PERSON_ID                   = x.a.PERSON_ID,
                CURRENT_LAST_NAME           = x.n.CURRENT_LAST_NAME,
                CURRENT_MIDDLE_NAME         = x.n.CURRENT_MIDDLE_NAME,
                CURRENT_FIRST_NAME          = x.n.CURRENT_FIRST_NAME,
                REPLYING_TO_MESSAGE_FEED_ID = x.n.REPLYING_TO_MESSAGE_FEED_ID,
                MESSAGE_CONTENT             = x.n.MESSAGE_CONTENT,
                ATTACHED_PHOTO_FILENAME     = x.n.ATTACHED_PHOTO_FILENAME,
                ATTACHED_PHOTO_NOTE         = x.n.ATTACHED_PHOTO_NOTE,
                ATTACHED_PHOTO_LONGITUDE    = x.n.ATTACHED_PHOTO_LONGITUDE,
                ATTACHED_PHOTO_LATITUDE     = x.n.ATTACHED_PHOTO_LATITUDE,
                Image     = x.a.Image,
                Time      = DateTimeFormater.GetTimeAgo(x.n.FROM_DATE.Value),
                FROM_DATE = x.n.FROM_DATE,
                THRU_DATE = x.n.THRU_DATE
            });

            return(activityFeeds.OrderByDescending(x => x.FROM_DATE).ToPagedList(page, pageSize).ToList());
        }
Example #2
0
        public HttpResponseMessage CreateStatus([FromBody] Status status)
        {
            if (status != null)
            {
                var account    = db.ACCOUNTs.SingleOrDefault(x => x.UserName == status.UserName);
                var conference = db.CONFERENCEs.SingleOrDefault(x => x.CONFERENCE_ID == status.CONFERENCE_ID);
                if (account == null)
                {
                    return(ResponseFail(StringResource.Account_does_not_exist));
                }
                else if (conference == null)
                {
                    return(ResponseFail(StringResource.Conference_do_not_exist));
                }
                else
                {
                    var messageFeed = new MESSAGE_FEED();
                    var result      = db.MESSAGE_FEED.ToList();
                    if (result.Count > 0)
                    {
                        messageFeed.MESSAGE_FEED_ID = result.Last().MESSAGE_FEED_ID + 1;
                    }
                    else
                    {
                        messageFeed.MESSAGE_FEED_ID = 0;
                    }
                    messageFeed.UserName = status.UserName;
                    messageFeed.REPLYING_TO_MESSAGE_FEED_ID = status.REPLYING_TO_MESSAGE_FEED_ID >= 0 ? status.REPLYING_TO_MESSAGE_FEED_ID : null;
                    messageFeed.FROM_DATE                 = DateTime.Now;
                    messageFeed.CURRENT_LAST_NAME         = account.CURRENT_LAST_NAME;
                    messageFeed.CURRENT_FIRST_NAME        = account.CURRENT_FIRST_NAME;
                    messageFeed.CURRENT_MIDDLE_NAME       = account.CURRENT_MIDDLE_NAME;
                    messageFeed.CONFERENCE_ID             = status.CONFERENCE_ID;
                    messageFeed.CONFERENCE_NAME           = conference.CONFERENCE_NAME;
                    messageFeed.CONFERENCE_NAME_EN        = conference.CONFERENCE_NAME_EN;
                    messageFeed.PUBLIC_OR_PRIVATE_MESSAGE = "PUBLIC";
                    messageFeed.MESSAGE_CONTENT           = status.MESSAGE_CONTENT;
                    messageFeed.ATTACHED_PHOTO_FILENAME   = status.ATTACHED_PHOTO_FILENAME;
                    messageFeed.ATTACHED_PHOTO_NOTE       = status.ATTACHED_PHOTO_NOTE;
                    messageFeed.ATTACHED_PHOTO_LONGITUDE  = status.ATTACHED_PHOTO_LONGITUDE;
                    messageFeed.ATTACHED_PHOTO_LATITUDE   = status.ATTACHED_PHOTO_LATITUDE;
                    db.MESSAGE_FEED.Add(messageFeed);
                    db.SaveChanges();

                    status.CURRENT_LAST_NAME   = account.CURRENT_LAST_NAME;
                    status.CURRENT_FIRST_NAME  = account.CURRENT_FIRST_NAME;
                    status.CURRENT_MIDDLE_NAME = account.CURRENT_MIDDLE_NAME;
                    status.MESSAGE_FEED_ID     = messageFeed.MESSAGE_FEED_ID;
                    status.Image = account.Image;
                    status.Time  = DateTimeFormater.GetTimeAgo(messageFeed.FROM_DATE.Value);

                    return(ResponseSuccess(StringResource.Success, status));
                }
            }
            else
            {
                return(ResponseFail(StringResource.Data_not_received));
            }
        }
        private Expression CreateSimpleFilterExpression(object value, Expression fieldExpression)
        {
            if (this.PropertyInfo.PropertyType != typeof(DateTime) && this.PropertyInfo.PropertyType != typeof(DateTime?))
            {
                Expression expression = Expression.Equal(fieldExpression, Expression.Constant(value, this.PropertyInfo.PropertyType));

                return(expression);
            }


            DateTime dateTime = DateTimeFormater.Deserialize(value.ToString());

            if (this.DateFormat == null)
            {
                Expression expression = Expression.Equal(fieldExpression, Expression.Constant(dateTime));

                return(expression);
            }


            Expression currentExpression = null;

            if (this.DateTimeFormater.HasYear)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Year, dateTime.Year);
            }
            if (this.DateTimeFormater.HasMonth)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Month, dateTime.Month);
            }
            if (this.DateTimeFormater.HasDay)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Day, dateTime.Day);
            }
            if (this.DateTimeFormater.HasHour)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Hour, dateTime.Hour);
            }
            if (this.DateTimeFormater.HasMinute)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Minute, dateTime.Minute);
            }
            if (this.DateTimeFormater.HasSecond)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Second, dateTime.Second);
            }

            return(currentExpression);
        }
Example #4
0
        public void Format_Format_FormatedDateTime()
        {
            // Arrange
            var time = new DateTime(2019, 12, 1, 13, 17, 45);

            var expect = "2019/12/01 01:17:45";

            var dateTimeFormater = new DateTimeFormater();

            // Act
            var actual = dateTimeFormater.Format(time);

            // Assert
            actual.Should().BeEquivalentTo(expect);
        }
Example #5
0
        public HttpResponseMessage ListMessageGroup(int MESSAGING_GROUP_ID, int conferenceId, int page, int pageSize)
        {
            var list = db.MESSAGE_FEED.Where(x => x.RECIPIENT_MESSAGING_GROUP_ID_1 == MESSAGING_GROUP_ID && x.PUBLIC_OR_PRIVATE_MESSAGE == "PRIVATE" && x.CONFERENCE_ID == conferenceId)
                       .Where(x => x.DELETED == false || x.DELETED == null)
                       .OrderByDescending(x => x.FROM_DATE).ToPagedList(page, pageSize);
            var listMessage = new List <MessageResponse>();
            int size        = list.Count;

            for (int i = 0; i < size; i++)
            {
                var      item      = list[i];
                var      itemLater = list[i > 1 ? i - 1 : i];
                DateTime?dt        = item.FROM_DATE;
                DateTime?dtLater   = itemLater.FROM_DATE;
                if (dt.HasValue && dtLater.HasValue)
                {
                    var accountSend = db.ACCOUNTs.SingleOrDefault(x => x.UserName == item.UserName);
                    var msg         = new MessageResponse();
                    msg.MESSAGE_FEED_ID                     = item.MESSAGE_FEED_ID;
                    msg.MESSAGE_CONTENT                     = item.MESSAGE_CONTENT;
                    msg.IsToDay                             = DateTimeFormater.CheckIsToday(dt.Value);
                    msg.TimeFormat                          = DateTimeFormater.GetTimeAgo(dt.Value);
                    msg.Time                                = dt;
                    msg.UserName                            = item.UserName;
                    msg.PERSON_ID_SEND                      = accountSend.PERSON_ID;
                    msg.ORGANIZATION_SEND                   = accountSend.CURRENT_HOME_ORGANIZATION_NAME;
                    msg.ORGANIZATION_EN_SEND                = accountSend.CURRENT_HOME_ORGANIZATION_NAME_EN;
                    msg.Image                               = new AccountModel().GetUserByUserName(item.UserName).Image;
                    msg.FULL_NAME_PERSON_SEND               = Utils.GetFullName(item.CURRENT_FIRST_NAME, item.CURRENT_MIDDLE_NAME, item.CURRENT_LAST_NAME);
                    msg.RECIPIENT_MESSAGING_GROUP_ID_1      = item.RECIPIENT_MESSAGING_GROUP_ID_1;
                    msg.RECIPIENT_MESSAGING_GROUP_NAME_1    = item.RECIPIENT_MESSAGING_GROUP_NAME_1;
                    msg.RECIPIENT_MESSAGING_GROUP_NAME_EN_1 = item.RECIPIENT_MESSAGING_GROUP_NAME_EN_1;
                    msg.IS_MESSAGE_GROUP                    = true;
                    if (i > 0)
                    {
                        listMessage[i - 1].IsMoreThanOneDay = DateTimeFormater.CheckMoreThanOneDay(dtLater.Value, dt.Value);
                    }
                    listMessage.Add(msg);
                }
            }
            return(ResponseSuccess(StringResource.Success, listMessage));
        }
Example #6
0
        public HttpResponseMessage ListPhotoFeed(string userName, decimal conferenceId, int page, int pageSize)
        {
            var model      = new NewFeedModel();
            var photoFeeds = model.getListPhotoFeed(conferenceId, page, pageSize);
            var result     = new List <PhotoResponse>();

            foreach (PhotoFeed item in photoFeeds)
            {
                var itemFeed = new PhotoResponse();
                itemFeed.Date     = item.Date;
                itemFeed.ListFeed = new List <ActivityFeed>();
                foreach (MESSAGE_FEED feed in item.ListFeed)
                {
                    var account = new AccountModel().GetUserByUserName(feed.UserName);
                    var f       = new ActivityFeed();
                    f.MESSAGE_FEED_ID             = feed.MESSAGE_FEED_ID;
                    f.UserName                    = feed.UserName;
                    f.PERSON_ID                   = account.PERSON_ID;
                    f.CURRENT_LAST_NAME           = feed.CURRENT_LAST_NAME;
                    f.CURRENT_MIDDLE_NAME         = feed.CURRENT_MIDDLE_NAME;
                    f.CURRENT_FIRST_NAME          = feed.CURRENT_FIRST_NAME;
                    f.REPLYING_TO_MESSAGE_FEED_ID = feed.REPLYING_TO_MESSAGE_FEED_ID;
                    f.MESSAGE_CONTENT             = feed.MESSAGE_CONTENT;
                    f.ATTACHED_PHOTO_FILENAME     = feed.ATTACHED_PHOTO_FILENAME;
                    f.ATTACHED_PHOTO_NOTE         = feed.ATTACHED_PHOTO_NOTE;
                    f.ATTACHED_PHOTO_LONGITUDE    = feed.ATTACHED_PHOTO_LONGITUDE;
                    f.ATTACHED_PHOTO_LATITUDE     = feed.ATTACHED_PHOTO_LATITUDE;
                    f.Image       = account.Image;
                    f.Time        = DateTimeFormater.GetTimeAgo(feed.FROM_DATE.Value);
                    f.FROM_DATE   = feed.FROM_DATE;
                    f.THRU_DATE   = feed.THRU_DATE;
                    f.ListComment = model.getListActivityFeedComment(feed.MESSAGE_FEED_ID);
                    f.IS_LIKED    = model.checkIsLiked(userName, feed.MESSAGE_FEED_ID);
                    f.ListLike    = model.listLike(feed.MESSAGE_FEED_ID);
                    itemFeed.ListFeed.Add(f);
                }
                result.Add(itemFeed);
            }

            return(ResponseSuccess(StringResource.Success, result));
        }
Example #7
0
        public HttpResponseMessage NewFeedDetail(int MESSAGE_FEED_ID, string userName)
        {
            var account = new AccountModel().GetUserByUserName(userName);

            if (account == null)
            {
                return(ResponseFail(StringResource.Account_does_not_exist));
            }
            else
            {
                var model  = new NewFeedModel();
                var result = db.MESSAGE_FEED.Find(MESSAGE_FEED_ID);
                if (result != null)
                {
                    var activityFeed = new ActivityFeed();
                    activityFeed.MESSAGE_FEED_ID             = result.MESSAGE_FEED_ID;
                    activityFeed.UserName                    = result.UserName;
                    activityFeed.MESSAGE_CONTENT             = result.MESSAGE_CONTENT;
                    activityFeed.CURRENT_LAST_NAME           = result.CURRENT_LAST_NAME;
                    activityFeed.CURRENT_FIRST_NAME          = result.CURRENT_FIRST_NAME;
                    activityFeed.REPLYING_TO_MESSAGE_FEED_ID = result.REPLYING_TO_MESSAGE_FEED_ID;
                    activityFeed.ATTACHED_PHOTO_FILENAME     = result.ATTACHED_PHOTO_FILENAME;
                    activityFeed.ATTACHED_PHOTO_NOTE         = result.ATTACHED_PHOTO_NOTE;
                    activityFeed.ATTACHED_PHOTO_LONGITUDE    = result.ATTACHED_PHOTO_LONGITUDE;
                    activityFeed.ATTACHED_PHOTO_LATITUDE     = result.ATTACHED_PHOTO_LATITUDE;
                    activityFeed.Time        = DateTimeFormater.GetTimeAgo(result.FROM_DATE.Value);
                    activityFeed.Image       = account.Image;
                    activityFeed.FROM_DATE   = result.FROM_DATE;
                    activityFeed.THRU_DATE   = result.THRU_DATE;
                    activityFeed.ListComment = model.getListActivityFeedComment(MESSAGE_FEED_ID);
                    activityFeed.ListLike    = model.listLike(MESSAGE_FEED_ID);
                    activityFeed.IS_LIKED    = model.checkIsLiked(userName, MESSAGE_FEED_ID);
                    return(ResponseSuccess(StringResource.Success, activityFeed));
                }
                else
                {
                    return(ResponseFail(StringResource.Can_not_load_detail));
                }
            }
        }
Example #8
0
        private Expression CreateFilterByDateTimeExpression(object value, Expression fieldExpression)
        {
            DateTime dateTime = DateTimeFormater.Deserialize(value.ToString());

            if (this.DateFormat == null)
            {
                return(Expression.Equal(fieldExpression, Expression.Constant(dateTime)));
            }


            Expression currentExpression = null;

            if (this.DateTimeFormater.HasYear)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Year, dateTime.Year);
            }
            if (this.DateTimeFormater.HasMonth)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Month, dateTime.Month);
            }
            if (this.DateTimeFormater.HasDay)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Day, dateTime.Day);
            }
            if (this.DateTimeFormater.HasHour)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Hour, dateTime.Hour);
            }
            if (this.DateTimeFormater.HasMinute)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Minute, dateTime.Minute);
            }
            if (this.DateTimeFormater.HasSecond)
            {
                currentExpression = AddEqualsExpression(fieldExpression, currentExpression, DateTimeFormater.DateTime_Second, dateTime.Second);
            }

            return(currentExpression);
        }
Example #9
0
 public LogPrinter(DateTimeFormater dateTimeFormater)
 {
     _dateTimeFormater = dateTimeFormater;
 }
Example #10
0
        public HttpResponseMessage SendMessageGroup([FromBody] ChatGroup chat)
        {
            var accountSend = db.ACCOUNTs.SingleOrDefault(x => x.UserName == chat.data.UserName);
            var group       = db.MESSAGING_GROUP.SingleOrDefault(x => x.MESSAGING_GROUP_ID == chat.data.MESSAGING_GROUP_ID);
            var conference  = db.CONFERENCEs.SingleOrDefault(x => x.CONFERENCE_ID == chat.data.CONFERENCE_ID);

            if (accountSend == null)
            {
                return(ResponseFail(StringResource.Account_does_not_exist));
            }
            else if (group == null)
            {
                return(ResponseFail(StringResource.Message_group_do_not_exist));
            }
            else if (conference == null)
            {
                return(ResponseFail(StringResource.Conference_do_not_exist));
            }
            else
            {
                var listMember = db.ACCOUNT_MESSAGING_GROUP_MEMBERSHIP.Where(x => x.MESSAGING_GROUP_ID == chat.data.MESSAGING_GROUP_ID &&
                                                                             (x.GROUP_ASSIGNED_OR_GROUP_JOIN_REQUEST_OR_GROUP_JOIN_REQUEST_APPROVED == "GROUP ASSIGNED" || x.GROUP_ASSIGNED_OR_GROUP_JOIN_REQUEST_OR_GROUP_JOIN_REQUEST_APPROVED == "GROUP JOIN REQUEST APPROVED") &&
                                                                             (x.DELETED == false || x.DELETED == null)).ToList();

                var adminGroup = new ACCOUNT_MESSAGING_GROUP_MEMBERSHIP();
                adminGroup.UserName = group.CREATED_UserName;
                listMember.Add(adminGroup);

                /*Thêm vào CSDL*/
                var messageFeed = new MESSAGE_FEED();
                messageFeed.FROM_DATE                           = DateTime.Now;
                messageFeed.UserName                            = chat.data.UserName;
                messageFeed.CURRENT_FIRST_NAME                  = accountSend.CURRENT_FIRST_NAME;
                messageFeed.CURRENT_MIDDLE_NAME                 = accountSend.CURRENT_MIDDLE_NAME;
                messageFeed.CURRENT_LAST_NAME                   = accountSend.CURRENT_LAST_NAME;
                messageFeed.CONFERENCE_ID                       = chat.data.CONFERENCE_ID;
                messageFeed.CONFERENCE_NAME                     = conference.CONFERENCE_NAME;
                messageFeed.CONFERENCE_NAME_EN                  = conference.CONFERENCE_NAME_EN;
                messageFeed.PUBLIC_OR_PRIVATE_MESSAGE           = "PRIVATE";
                messageFeed.MESSAGE_CONTENT                     = chat.Body;
                messageFeed.RECIPIENT_MESSAGING_GROUP_ID_1      = group.MESSAGING_GROUP_ID;
                messageFeed.RECIPIENT_MESSAGING_GROUP_NAME_1    = group.MESSAGING_GROUP_NAME;
                messageFeed.RECIPIENT_MESSAGING_GROUP_NAME_EN_1 = group.MESSAGING_GROUP_NAME;
                new NewFeedModel().addNewFeed(messageFeed);

                /*Tạo dữ liệu trả về*/
                var msg = new MessageResponse();
                msg.MESSAGE_FEED_ID                     = messageFeed.MESSAGE_FEED_ID;
                msg.MESSAGE_CONTENT                     = messageFeed.MESSAGE_CONTENT;
                msg.IsMoreThanOneDay                    = false;
                msg.IsToDay                             = DateTimeFormater.CheckIsToday(messageFeed.FROM_DATE.Value);
                msg.TimeFormat                          = DateTimeFormater.GetTimeAgo(messageFeed.FROM_DATE.Value);
                msg.Time                                = messageFeed.FROM_DATE.Value;
                msg.UserName                            = messageFeed.UserName;
                msg.PERSON_ID_SEND                      = accountSend.PERSON_ID;
                msg.ORGANIZATION_SEND                   = accountSend.CURRENT_HOME_ORGANIZATION_NAME;
                msg.ORGANIZATION_EN_SEND                = accountSend.CURRENT_HOME_ORGANIZATION_NAME_EN;
                msg.Image                               = accountSend.Image;
                msg.FULL_NAME_PERSON_SEND               = Utils.GetFullName(messageFeed.CURRENT_FIRST_NAME, messageFeed.CURRENT_MIDDLE_NAME, messageFeed.CURRENT_LAST_NAME);
                msg.RECIPIENT_MESSAGING_GROUP_ID_1      = messageFeed.RECIPIENT_MESSAGING_GROUP_ID_1;
                msg.RECIPIENT_MESSAGING_GROUP_NAME_1    = messageFeed.RECIPIENT_MESSAGING_GROUP_NAME_1;
                msg.RECIPIENT_MESSAGING_GROUP_NAME_EN_1 = messageFeed.RECIPIENT_MESSAGING_GROUP_NAME_EN_1;
                msg.IS_MESSAGE_GROUP                    = true;

                foreach (ACCOUNT_MESSAGING_GROUP_MEMBERSHIP item in listMember)
                {
                    var memberRecive = db.ACCOUNT_DEVICE_RELATIONSHIP.SingleOrDefault(x => x.UserName == item.UserName);
                    if (memberRecive != null)
                    {
                        var deviceId = memberRecive.DEVICE_TOKEN;
                        if (deviceId != null)
                        {
                            var result  = "-1";
                            var webAddr = "https://fcm.googleapis.com/fcm/send";

                            var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
                            httpWebRequest.ContentType = "application/json";
                            httpWebRequest.Headers.Add("Authorization:key=" + StringResource.Server_fcm_key);
                            httpWebRequest.Method = "POST";

                            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                            {
                                var notification = new Notification();
                                notification.body     = chat.Body;
                                notification.title    = msg.FULL_NAME_PERSON_SEND;
                                notification.sound    = chat.Sound;
                                notification.priority = chat.Priority;

                                JsonData data = new JsonData();
                                data.Data = JsonConvert.SerializeObject(msg);

                                var json = new DataJson();
                                json.notification = notification;
                                json.data         = data;
                                json.to           = deviceId;

                                streamWriter.Write(JsonConvert.SerializeObject(json));
                                streamWriter.Flush();

                                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                                {
                                    result = streamReader.ReadToEnd();
                                }
                            }
                        }
                    }
                }

                return(ResponseSuccess(StringResource.Success, msg));
            }
        }
Example #11
0
        public HttpResponseMessage SendMessage([FromBody] Chat chat)
        {
            if (chat != null)
            {
                try
                {
                    var accountSend   = db.ACCOUNTs.SingleOrDefault(x => x.UserName == chat.data.UserName);
                    var accountRecive = db.ACCOUNTs.SingleOrDefault(x => x.UserName == chat.data.RECIPIENT_UserName_1);
                    var conference    = db.CONFERENCEs.SingleOrDefault(x => x.CONFERENCE_ID == chat.data.CONFERENCE_ID);
                    var manage        = new ManageDeviceModel().GetDeviceUserName(chat.data.RECIPIENT_UserName_1);
                    if (accountSend == null)
                    {
                        return(ResponseFail(StringResource.Account_does_not_exist));
                    }
                    else if (accountRecive == null)
                    {
                        return(ResponseFail(StringResource.Account_does_not_exist));
                    }
                    else if (conference == null)
                    {
                        return(ResponseFail(StringResource.Conference_do_not_exist));
                    }
                    else if (manage == null)
                    {
                        return(ResponseFail(StringResource.Account_has_not_been_logged));
                    }
                    else if (String.IsNullOrEmpty(manage.DEVICE_TOKEN))
                    {
                        return(ResponseFail(StringResource.Account_has_not_been_logged));
                    }
                    else
                    {
                        string deviceId = manage.DEVICE_TOKEN;
                        var    result   = "-1";
                        var    webAddr  = "https://fcm.googleapis.com/fcm/send";

                        var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
                        httpWebRequest.ContentType = "application/json";
                        httpWebRequest.Headers.Add("Authorization:key=" + StringResource.Server_fcm_key);
                        httpWebRequest.Method = "POST";
                        /*Thêm vào CSDL*/
                        var messageFeed = new MESSAGE_FEED();
                        messageFeed.FROM_DATE                       = DateTime.Now;
                        messageFeed.UserName                        = chat.data.UserName;
                        messageFeed.CURRENT_FIRST_NAME              = accountSend.CURRENT_FIRST_NAME;
                        messageFeed.CURRENT_MIDDLE_NAME             = accountSend.CURRENT_MIDDLE_NAME;
                        messageFeed.CURRENT_LAST_NAME               = accountSend.CURRENT_LAST_NAME;
                        messageFeed.CONFERENCE_ID                   = chat.data.CONFERENCE_ID;
                        messageFeed.CONFERENCE_NAME                 = conference.CONFERENCE_NAME;
                        messageFeed.CONFERENCE_NAME_EN              = conference.CONFERENCE_NAME_EN;
                        messageFeed.PUBLIC_OR_PRIVATE_MESSAGE       = "PRIVATE";
                        messageFeed.MESSAGE_CONTENT                 = chat.Body;
                        messageFeed.RECIPIENT_UserName_1            = chat.data.RECIPIENT_UserName_1;
                        messageFeed.RECIPIENT_CURRENT_LAST_NAME_1   = accountRecive.CURRENT_LAST_NAME;
                        messageFeed.RECIPIENT_CURRENT_MIDDLE_NAME_1 = accountRecive.CURRENT_MIDDLE_NAME;
                        messageFeed.RECIPIENT_CURRENT_FIRST_NAME_1  = accountRecive.CURRENT_FIRST_NAME;
                        new NewFeedModel().addNewFeed(messageFeed);

                        /*Tạo dữ liệu trả về*/
                        var msg = new MessageResponse();
                        msg.MESSAGE_FEED_ID         = messageFeed.MESSAGE_FEED_ID;
                        msg.MESSAGE_CONTENT         = messageFeed.MESSAGE_CONTENT;
                        msg.IsMoreThanOneDay        = false;
                        msg.IsToDay                 = DateTimeFormater.CheckIsToday(messageFeed.FROM_DATE.Value);
                        msg.TimeFormat              = DateTimeFormater.GetTimeAgo(messageFeed.FROM_DATE.Value);
                        msg.Time                    = messageFeed.FROM_DATE.Value;
                        msg.UserName                = messageFeed.UserName;
                        msg.PERSON_ID_SEND          = accountSend.PERSON_ID;
                        msg.ORGANIZATION_SEND       = accountSend.CURRENT_HOME_ORGANIZATION_NAME;
                        msg.ORGANIZATION_EN_SEND    = accountSend.CURRENT_HOME_ORGANIZATION_NAME_EN;
                        msg.Image                   = accountSend.Image;
                        msg.FULL_NAME_PERSON_SEND   = Utils.GetFullName(messageFeed.CURRENT_FIRST_NAME, messageFeed.CURRENT_MIDDLE_NAME, messageFeed.CURRENT_LAST_NAME);
                        msg.RECIPIENT_UserName_1    = messageFeed.RECIPIENT_UserName_1;
                        msg.FULL_NAME_PERSON_RECIVE = Utils.GetFullName(messageFeed.RECIPIENT_CURRENT_FIRST_NAME_1, messageFeed.RECIPIENT_CURRENT_MIDDLE_NAME_1, messageFeed.RECIPIENT_CURRENT_LAST_NAME_1);
                        msg.IS_MESSAGE              = true;

                        using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                        {
                            var notification = new Notification();
                            notification.body     = chat.Body;
                            notification.title    = msg.FULL_NAME_PERSON_SEND;
                            notification.sound    = chat.Sound;
                            notification.priority = chat.Priority;

                            JsonData data = new JsonData();
                            data.Data = JsonConvert.SerializeObject(msg);

                            var json = new DataJson();
                            json.notification = notification;
                            json.data         = data;
                            json.to           = deviceId;

                            streamWriter.Write(JsonConvert.SerializeObject(json));
                            streamWriter.Flush();

                            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                            {
                                result = streamReader.ReadToEnd();
                            }

                            return(ResponseSuccess(StringResource.Success, msg));
                        }
                    }
                }
                catch (Exception)
                {
                    return(ResponseFail(StringResource.Sorry_an_error_has_occurred));
                }
            }
            else
            {
                return(ResponseFail(StringResource.Data_not_received));
            }
        }