public async Task <ActionResult> CreateNews(News news)
        {
            if (ModelState.IsValid)
            {
                NoticeService service = NoticeService.GetInstance();

                CreateNotice newNews = new CreateNotice()
                {
                    title       = news.Title,
                    communityId = news.CommunityId,
                    description = news.Description,
                    initialDate = DateTime.Now,
                    userId      = User.Identity.GetUserId()
                };
                var res = await service.PostNoticeAsync(newNews);// retorna o id do evento que foi criado se quiser fazer redirect falta o nome da comunidade

                if (res.Success)
                {
                    return(Json(new { url = Constants.WebAPPAddress + "/community/" + news.CommunityName }));
                }

                else
                {
                    //tratar do erro que ainda falta pode dar um erro na inserção
                    ViewBag.Error   = true;
                    ViewBag.Message = res.Message;
                }
            }

            return(PartialView("_CreateEvent", news));
        }
Exemple #2
0
        //<------------------------------------------------------------------------------------------------------>
        //<------------------------------------------------------------------------------------------------------>


        private async Task <OperationResult <int> > Post(CreateNotice item)
        {
            using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                if (!item.ParameterValid())
                {
                    return new OperationResult <int>()
                           {
                               Success = false, Message = Messages.PARAMETERS_NOT_NULL
                           }
                }
                ;

                var community = await communityService.GetByIdAsync(item.communityId);

                if (!community.Success)
                {
                    return new OperationResult <int>()
                           {
                               Success = false, Message = community.Message
                           }
                }
                ;
                if (!community.Result.admins.Any(elem => elem.id == item.userId))
                {
                    return new OperationResult <int>()
                           {
                               Success = false, Message = Messages.USER_NO_PERMISSION
                           }
                }
                ;

                try
                {
                    var id = await noticeRepo.PostAsync(item);

                    scope.Complete();
                    return(new OperationResult <int>()
                    {
                        Success = true, Message = Messages.NOTICE_CREATED, Result = id
                    });
                }
                catch (Exception ex)
                {
                    return(new OperationResult <int>()
                    {
                        Success = false, Message = ex.Message
                    });
                }
            }
        }
Exemple #3
0
        private async Task <OperationResult <int> > Put(CreateNotice item)
        {
            using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                var notice = await noticeRepo.GetByIdAsync(item.id);

                if (notice == null)
                {
                    return new OperationResult <int>()
                           {
                               Success = false, Message = Messages.NOTICE_NOT_EXIST
                           }
                }
                ;
                if (!notice.community.admins.Any(elem => elem.id == item.userId))
                {
                    return new OperationResult <int>()
                           {
                               Success = false, Message = Messages.USER_NO_PERMISSION
                           }
                }
                ;

                try
                {
                    notice.title = item.title == null ? notice.title : item.title;

                    notice.description = item.description == null ? notice.description : item.description;
                    var id = await noticeRepo.PutAsync(notice);

                    scope.Complete();
                    return(new OperationResult <int>()
                    {
                        Success = true, Message = Messages.NOTICE_UPDATED, Result = id
                    });
                }
                catch (Exception ex)
                {
                    return(new OperationResult <int>()
                    {
                        Success = false, Message = ex.Message
                    });
                }
            }
        }
Exemple #4
0
        public Task <int> PostAsync(CreateNotice item)
        {
            return(Task.Factory.StartNew(() =>
            {
                var result = new notice()
                {
                    communityId = item.communityId, description = item.description, initialDate = item.initialDate, title = item.title
                };

                context.notice.Add(result);

                try
                {
                    context.SaveChanges();
                    return result.id;
                }
                catch (Exception e)
                {
                    throw new ArgumentException(e.InnerException.Message);
                }
            }));
        }
Exemple #5
0
 public async Task <OperationResult <int> > UpdateNotice(CreateNotice item)
 {
     return(await Put(item));
 }
Exemple #6
0
 public async Task <OperationResult <int> > DeleteNotice(CreateNotice item)
 {
     return(await Delete(item));
 }
Exemple #7
0
 public async Task <OperationResult <int> > PostNoticeAsync(CreateNotice item)
 {
     return(await Post(item));
 }