public async Task <IHttpActionResult> SaveMediaEmail(MediaEmailSaveModel model)
        {
            var userId = User.Identity.GetUserId <int>();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var taskResult = await repository.SaveMediaEmail(model);

            return(Ok(taskResult));
        }
        public async Task <bool> SaveMediaEmail(MediaEmailSaveModel model)
        {
            bool result = false;

            try
            {
                await Task.Run(async() =>
                {
                    using (var context = new SocialCRMEntities())
                    {
                        if (model.Id > 0)
                        {
                            await DeleteMediaEmail(model.Id.Value);
                        }

                        if (context.Emails.Where(x => x.EmailId == model.EmailId).Count() <= 0)
                        {
                            Email emailObj   = new Email();
                            emailObj.EmailId = model.EmailId;
                            if (!String.IsNullOrEmpty(model.Rights))
                            {
                                var rightIds = model.Rights.Split(',').Select(x => Convert.ToInt32(x)).ToArray();

                                foreach (var item in rightIds)
                                {
                                    emailObj.EmailRights.Add(context.EmailRights.Find(item));
                                }
                            }

                            context.Emails.Add(emailObj);
                            context.SaveChanges();
                            result = true;
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                result = false;
            }
            return(result);
        }