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)); }
//<------------------------------------------------------------------------------------------------------> //<------------------------------------------------------------------------------------------------------> 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 }); } } }
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 }); } } }
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); } })); }
public async Task <OperationResult <int> > UpdateNotice(CreateNotice item) { return(await Put(item)); }
public async Task <OperationResult <int> > DeleteNotice(CreateNotice item) { return(await Delete(item)); }
public async Task <OperationResult <int> > PostNoticeAsync(CreateNotice item) { return(await Post(item)); }