コード例 #1
0
        public async Task VisitorPictureRepository_DeleteVisitorPicture_Deleted_NotFail_Test()
        {
            var context = new MyCompanyContext();
            IVisitorPictureRepository target = new VisitorPictureRepository(new MyCompanyContext());

            var visitorId = context.Visitors.FirstOrDefault().VisitorId;

            System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();
            var newVisitorPicture             = new VisitorPicture()
            {
                VisitorId   = visitorId,
                PictureType = PictureType.Big,
                Content     = encoder.GetBytes("sample"),
            };

            int visitorPictureId = await target.AddAsync(newVisitorPicture);

            int expected = context.VisitorPictures.Count() - 1;

            await target.DeleteAsync(visitorPictureId);

            int actual = context.VisitorPictures.Count();

            Assert.AreEqual(expected, actual);
        }
コード例 #2
0
        public async Task <int> AddVisitor()
        {
            var context  = new MyCompanyContext();
            int expected = context.Visitors.Count() + 1;

            var target  = new VisitorRepository(context);
            var Visitor = new Visitor()
            {
                FirstName            = "FirstName",
                LastName             = "LastName",
                Company              = "MyCompany",
                Email                = "Email",
                CreatedDateTime      = DateTime.UtcNow,
                LastModifiedDateTime = DateTime.UtcNow,
            };

            var visitorId = await target.AddAsync(Visitor);

            System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();
            var visitorPicture = new VisitorPicture()
            {
                VisitorId   = visitorId,
                PictureType = PictureType.Small,
                Content     = encoder.GetBytes("sample"),
            };

            var visitorPictureRepository = new VisitorPictureRepository(new MyCompanyContext());
            await visitorPictureRepository.AddAsync(visitorPicture);

            return(visitorId);
        }
コード例 #3
0
        public async Task Update(VisitorPicture visitorPicture)
        {
            if (visitorPicture == null)
            {
                throw new ArgumentNullException("visitorPicture");
            }

            await _visitorPictureRepository.UpdateAsync(visitorPicture);
        }
コード例 #4
0
        public async Task <int> Add(VisitorPicture visitorPicture)
        {
            if (visitorPicture == null)
            {
                throw new ArgumentNullException("visitorPicture");
            }

            return(await _visitorPictureRepository.AddAsync(visitorPicture));
        }
コード例 #5
0
        public static Bitmap ToImage(this VisitorPicture picture)
        {
            if (picture == null || picture.Content == null || picture.Content.Length == 0)
            {
                return(Images.DefaultImage.Value);
            }
            Bitmap bitmap = BitmapFactory.DecodeByteArray(picture.Content, 0, picture.Content.Length);

            return(bitmap);
        }
コード例 #6
0
        private async void AddPicture(PictureType pictureType)
        {
            VisitorPicture picture = null;

            // If picture type is big, creates a new Visitor Picture using the image to crop attribute.
            if ((pictureType == PictureType.Big) && (this.imageToCrop != null))
            {
                this.visitorPictures = new Collection <VisitorPicture>()
                {
                };

                picture = new VisitorPicture
                {
                    Content     = await storageService.FileToByte(this.imageToCrop),
                    PictureType = pictureType
                };

                this.visitorPictures.Add(picture);
            }


            // If picture type is small, creates a new Visitor Picture using the image croppped attribute.
            else if ((pictureType == PictureType.Small) && ((this.imageCropped != null)))
            {
                await dispatcherService.InvokeUI(async() =>
                {
                    picture = new VisitorPicture
                    {
                        Content     = await storageService.FileToByte(this.imageCropped),
                        PictureType = pictureType
                    };
                    this.visitorPictures.Add(picture);
                    IsBusy = true;


                    var newVisitorPictures = this.visitorPictures.ToList();

                    foreach (var visitorPicture in newVisitorPictures)
                    {
                        visitorPicture.VisitorId = visitItem.VisitorId;
                    }

                    await this.clientService.VisitorPictureService.AddOrUpdatePictures(visitorPictures);

                    var message = new VisitorPicturesChanged(this.visitorPictures);
                    this.MessengerInstance.Send <VisitorPicturesChanged>(message);

                    this.Visit.ChangePhotos(this.visitorPictures);
                    base.RaisePropertyChanged(() => Visit);
                    IsBusy = false;
                });
            }
        }
コード例 #7
0
        /// <summary>
        /// <see cref="MyCompany.Visitors.Data.Repositories.IVisitorPictureRepository"/>
        /// </summary>
        /// <param name="visitorPicture"><see cref="MyCompany.Visitors.Data.Repositories.IVisitorPictureRepository"/></param>
        public async Task UpdateAsync(VisitorPicture visitorPicture)
        {
            if (visitorPicture == null)
            {
                throw new ArgumentNullException("visitorPicture");
            }

            _context.Entry <VisitorPicture>(visitorPicture)
            .State = EntityState.Modified;

            await _context.SaveChangesAsync();
        }
コード例 #8
0
        /// <summary>
        /// <see cref="MyCompany.Visitors.Data.Repositories.IVisitorPictureRepository"/>
        /// </summary>
        /// <param name="visitorPicture"><see cref="MyCompany.Visitors.Data.Repositories.IVisitorPictureRepository"/></param>
        /// <returns><see cref="MyCompany.Visitors.Data.Repositories.IVisitorPictureRepository"/></returns>
        public async Task <int> AddAsync(VisitorPicture visitorPicture)
        {
            if (visitorPicture == null)
            {
                throw new ArgumentNullException("visitorPicture");
            }

            _context.VisitorPictures
            .Add(visitorPicture);

            await _context.SaveChangesAsync();

            return(visitorPicture.VisitorPictureId);
        }
コード例 #9
0
        private async void AddPicture(PictureType pictureType)
        {
            VisitorPicture picture = null;

            // If picture type is big, creates a new Visitor Picture using the image to crop attribute.
            if ((pictureType == PictureType.Big) && (this.imageToCrop != null))
            {
                picture = new VisitorPicture
                {
                    Content     = await storageService.FileToByte(this.imageToCrop),
                    PictureType = pictureType
                };
                // If there are already two pictures in the collection.
                if (this.visitorPictures.Count == 2)
                {
                    this.visitorPictures = new Collection <VisitorPicture>()
                    {
                        picture
                    };
                }
                // If there isn't any picture in the collection yet.
                else
                {
                    this.visitorPictures.Add(picture);
                }
            }
            // If picture type is small, creates a new Visitor Picture using the image croppped attribute.
            else if ((pictureType == PictureType.Small) && ((this.imageCropped != null)))
            {
                await App.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() =>
                {
                    picture = new VisitorPicture
                    {
                        Content     = await storageService.FileToByte(this.imageCropped),
                        PictureType = pictureType
                    };
                    this.visitorPictures.Add(picture);
                });
            }

            RaisePropertyChanged(() => VisitorPictures);
            RaisePropertyChanged(() => ImageButtonText);
        }
コード例 #10
0
        public void VisitorPictures_Add_Test()
        {
            bool called = false;
            var  visitorPicturesRepository = new Data.Repositories.Fakes.StubIVisitorPictureRepository();

            var newVisitor = new VisitorPicture()
            {
                VisitorPictureId = 1,
            };

            visitorPicturesRepository.AddAsyncVisitorPicture = (visitor) =>
            {
                Assert.IsTrue(visitor.VisitorPictureId == newVisitor.VisitorPictureId);
                called = true;
                return(Task.FromResult(10));
            };

            var target = new VisitorPicturesController(visitorPicturesRepository);
            var task   = target.Add(newVisitor);

            Assert.IsTrue(called);
        }
コード例 #11
0
        public void VisitorPictures_GetSpecificType_Test()
        {
            bool called = false;
            var  visitorPicturesRepository = new Data.Repositories.Fakes.StubIVisitorPictureRepository();

            var picture = new VisitorPicture()
            {
                VisitorPictureId = 1,
                Content          = new byte[1]
            };

            visitorPicturesRepository.GetAsyncInt32PictureType = (visitor, pictureType) =>
            {
                called = true;
                return(Task.FromResult(picture));
            };

            var target = new VisitorPicturesController(visitorPicturesRepository);
            var result = target.Get(1, PictureType.Small);

            Assert.IsNotNull(result);
            Assert.IsTrue(called);
        }
コード例 #12
0
        public void VisitorPictures_Update_Test()
        {
            bool called = false;
            var  visitorPicturesRepository = new Data.Repositories.Fakes.StubIVisitorPictureRepository();

            var updateVisitor = new VisitorPicture()
            {
                VisitorPictureId = 1,
            };

            visitorPicturesRepository.UpdateAsyncVisitorPicture = (visitor) =>
            {
                Assert.IsTrue(visitor.VisitorPictureId == updateVisitor.VisitorPictureId);
                called = true;

                return(Task.Delay(0));
            };

            var target = new VisitorPicturesController(visitorPicturesRepository);
            var task   = target.Update(updateVisitor);

            Assert.IsTrue(called);
        }
コード例 #13
0
        public void VisitorPictures_Delete_Test()
        {
            bool called = false;
            var  visitorPicturesRepository = new Data.Repositories.Fakes.StubIVisitorPictureRepository();

            var visitor = new VisitorPicture()
            {
                VisitorPictureId = 1,
            };

            visitorPicturesRepository.DeleteAsyncInt32 = (id) =>
            {
                Assert.IsTrue(id == visitor.VisitorPictureId);
                called = true;

                return(Task.Delay(0));
            };

            var target = new VisitorPicturesController(visitorPicturesRepository);

            target.Delete(visitor.VisitorPictureId);

            Assert.IsTrue(called);
        }
コード例 #14
0
 public static UIImage ToImage(this VisitorPicture picture)
 {
     return(picture == null || picture.Content == null ? null : picture.Content.ToImage());
 }