示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
                }
            }
        }