private async Task CropAndSave(byte[] content, int visitorId, ImageCrop crop) { var webImage = new WebImage(content); var visitorPictures = new List <VisitorPicture>(); double rx = webImage.Width / crop.w; double ry = webImage.Height / crop.h; var smallImage = CropImage(webImage, rx, ry, crop.smallSelection); await _visitorPictureRepository.AddOrUpdateAsync(visitorId, PictureType.Small, smallImage.GetBytes()); visitorPictures.Add(new VisitorPicture { Content = smallImage.GetBytes(), PictureType = PictureType.Small, VisitorId = visitorId }); var bigImage = CropImage(webImage, rx, ry, crop.bigSelection); await _visitorPictureRepository.AddOrUpdateAsync(visitorId, PictureType.Big, bigImage.GetBytes()); visitorPictures.Add(new VisitorPicture { Content = bigImage.GetBytes(), PictureType = PictureType.Big, VisitorId = visitorId }); VisitorsNotificationHub.NotifyVisitorPicturesChanged(visitorPictures); }
public async Task <int> Add(Visit visit) { if (visit == null) { throw new ArgumentNullException("visit"); } var visitId = await _visitRepository.AddAsync(visit); var addedVisit = await _visitRepository.GetCompleteInfoAsync(visitId, PictureType.All); VisitorsNotificationHub.NotifyVisitAdded(addedVisit); return(visitId); }
public async Task AddOrUpdatePictures(ICollection <VisitorPicture> visitorPictures) { if (null == visitorPictures || visitorPictures.Count == 0) { throw new ArgumentNullException("visitorPictures"); } foreach (var visitorPicture in visitorPictures) { await _visitorPictureRepository.AddOrUpdateAsync(visitorPicture.VisitorId, visitorPicture.PictureType, visitorPicture.Content); } VisitorsNotificationHub.NotifyVisitorPicturesChanged(visitorPictures); }
public async Task UpdateStatus(int visitId, VisitStatus status) { var visit = await _visitRepository.GetCompleteInfoAsync(visitId, PictureType.Small); if (visit != null) { visit.Status = status; await _visitRepository.UpdateAsync(visit); var employee = await _employeeRepository.GetCompleteInfoAsync(visit.EmployeeId, PictureType.Small); if (employee != null && !String.IsNullOrWhiteSpace(employee.Email) && status == VisitStatus.Arrived) { VisitorsNotificationHub.NotifyVisitArrived(visit, employee.Email); } } }