public MessageReplyEntity InsertMessageReply(MessageReplyEntity entity)
        {
            using (var context = new CorpSMSEntities())
            {
                var reply = context.MessageReplies.Where(p => p.MessageReplyId == entity.MessageReplyId).FirstOrDefault();

                if (reply != null)
                {
                    // Detach the entity first
                    context.Detach(reply);

                    reply = EntityToMessageReply(entity, reply);

                    // Attach the entity again.
                    context.Attach(reply);
                    context.ObjectStateManager.ChangeObjectState(reply, System.Data.EntityState.Modified);
                }
                else
                {
                    reply = EntityToMessageReply(entity, new MessageReply());
                    context.AddToMessageReplies(reply);
                }

                context.SaveChanges();

                return MessageReplyToEntity(reply);
            }
        }
        public MessageEntity SetMessageForced(MessageEntity entity)
        {
            using (var context = new CorpSMSEntities())
            {
                var message = context.Messages.Where(p => p.RowGuid == entity.RowGuid).FirstOrDefault();

                if (message != null)
                {
                    // Detach the entity first
                    context.Detach(message);

                    message = EntityToMessage(entity, message);

                    // Attach the entity again.
                    context.Attach(message);
                    context.ObjectStateManager.ChangeObjectState(message, System.Data.EntityState.Modified);
                }
                else
                {
                    message = EntityToMessage(entity, new Message());
                    context.AddToMessages(message);
                }

                context.SaveChanges();

                return MessageToEntity(message);
            }
        }
        public DeliveryReportEntity InsertDeliveryReport(DeliveryReportEntity entity)
        {
            using (var context = new CorpSMSEntities())
            {
                var report = context.DeliveryReports.Where(p => p.DeliveryReportId == entity.DeliveryReportId).FirstOrDefault();

                if (report != null)
                {
                    // Detach the entity first
                    context.Detach(report);

                    report = EntityToDeliveryReport(entity, report);

                    // Attach the entity again.
                    context.Attach(report);
                    context.ObjectStateManager.ChangeObjectState(report, System.Data.EntityState.Modified);
                }
                else
                {
                    report = EntityToDeliveryReport(entity, new DeliveryReport());
                    context.AddToDeliveryReports(report);
                }

                context.SaveChanges();

                return DeliveryReportToEntity(report);
            }
        }
        public void UpdateShortCodeSettingsLatestID(long latestID, int accountID)
        {
            using (var context = new CorpSMSEntities())
            {
                var setting = context.ShortCodeSettings.Where(p => p.AccountID == accountID).FirstOrDefault();

                if (setting != null)
                {
                    // Detach the entity first
                    context.Detach(setting);

                    setting.LatestID = latestID;

                    // Attach the entity again.
                    context.Attach(setting);
                    context.ObjectStateManager.ChangeObjectState(setting, System.Data.EntityState.Modified);

                    context.SaveChanges();
                }
            }
        }