public async Task <FoodMenuForReturnDto> Create(FoodMenuForCreationDto creationDto) { var claimId = int.Parse(httpContextAccessor.HttpContext.User?.Claims?.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value); var mapForCreate = mapper.Map <FoodMenu>(creationDto); var slideId = Guid.NewGuid(); mapForCreate.SlideId = slideId; mapForCreate.UserId = claimId; mapForCreate.Created = DateTime.Now; mapForCreate.AnnounceType = "foodmenu"; var createAnnounce = await foodMenuDal.Add(mapForCreate); var spec = new FoodMenuWithUserSpecification(createAnnounce.Id); var getAnnounceFromRepo = await foodMenuDal.GetEntityWithSpecAsync(spec); if (getAnnounceFromRepo == null) { throw new RestException(HttpStatusCode.BadRequest, new { AlreadyExist = Messages.NotFound }); } return(mapper.Map <FoodMenu, FoodMenuForReturnDto>(getAnnounceFromRepo)); }
public async Task <ActionResult <FoodMenuForReturnDto> > Publish(FoodMenuForCreationDto updateDto) { var foodMenu = await foodMenuService.Publish(updateDto); var onlineScreens = await onlineScreenService.GetAllOnlineScreenConnectionId(); if (onlineScreens != null && onlineScreens.Length != 0) { await kiosksHub.Clients.Clients(onlineScreens).SendAsync("ReloadScreen", true); } return(foodMenu); }
public async Task <ActionResult <FoodMenuForReturnDto> > Create([FromBody] FoodMenuForCreationDto creationDto) { var foodMenu = await foodMenuService.Create(creationDto); var connIds = await userTracker.GetOnlineUser(); if (connIds != null && connIds.Length != 0) { await hubContext.Clients.GroupExcept("FoodMenu", connIds).SendAsync("ReceiveNewFoodMenu", foodMenu, true); } return(foodMenu); }
public async Task <ActionResult <FoodMenuForReturnDto> > Update(FoodMenuForCreationDto updateDto) { var foodMenu = await foodMenuService.Update(updateDto); var connIds = await userTracker.GetOnlineUser(); if (connIds != null && connIds.Length != 0) { await hubContext.Clients.GroupExcept("FoodMenu", connIds).SendAsync("ReceiveUpdateFoodMenu", foodMenu); } var onlineScreens = await onlineScreenService.GetAllOnlineScreenConnectionId(); if (onlineScreens != null && onlineScreens.Length != 0) { await kiosksHub.Clients.Clients(onlineScreens).SendAsync("ReloadScreen", true); } return(foodMenu); }
public async Task <FoodMenuForReturnDto> Update(FoodMenuForCreationDto updateDto) { var checkFromRepo = await foodMenuDal.GetAsync(x => x.Id == updateDto.Id); if (checkFromRepo == null) { throw new RestException(HttpStatusCode.BadRequest, new { NotFound = Messages.NotFound }); } var mapForUpdate = mapper.Map(updateDto, checkFromRepo); mapForUpdate.Updated = DateTime.Now; mapForUpdate.AnnounceType = "foodmenu"; await foodMenuDal.Update(mapForUpdate); var spec = new FoodMenuWithUserSpecification(updateDto.Id); var getAnnounceWithUserFromRepo = await foodMenuDal.GetEntityWithSpecAsync(spec); return(mapper.Map <FoodMenu, FoodMenuForReturnDto>(getAnnounceWithUserFromRepo)); }
public async Task <FoodMenuForReturnDto> Publish(FoodMenuForCreationDto updateDto) { var checkFromRepo = await foodMenuDal.GetAsync(x => x.Id == updateDto.Id); if (checkFromRepo == null) { throw new RestException(HttpStatusCode.BadRequest, new { NotFound = Messages.NotFound }); } var checkHomeAnnounceSubScreenForPublish = await foodMenuSubScreenDal.GetListAsync(x => x.FoodMenuId == updateDto.Id); if (checkHomeAnnounceSubScreenForPublish.Count <= 0) { throw new RestException(HttpStatusCode.BadRequest, new { NotSelectSubScreen = Messages.NotSelectSubScreen }); } if (updateDto.IsPublish) { var checkDateExpire = DateTime.Compare(DateTime.Now, checkFromRepo.PublishFinishDate); if (checkDateExpire > 0) { throw new RestException(HttpStatusCode.BadRequest, new { NotFound = Messages.PublishDateExpire }); } } var mapForUpdate = mapper.Map(updateDto, checkFromRepo); mapForUpdate.Updated = DateTime.Now; mapForUpdate.AnnounceType = "foodmenu"; await foodMenuDal.Update(mapForUpdate); var spec = new FoodMenuWithUserSpecification(updateDto.Id); var getAnnounceWithUserFromRepo = await foodMenuDal.GetEntityWithSpecAsync(spec); return(mapper.Map <FoodMenu, FoodMenuForReturnDto>(getAnnounceWithUserFromRepo)); }