Esempio n. 1
0
        public void BeforeTest()
        {
            var exceptionEntityList          = new List <WasteManagementEventEntity>();
            WasteManagementEventEntity item1 = _testData.CreateWasteManagementEvent();

            item1.EventId = "141ee716-7995-442c-94a6-ce4ae6e13534";
            WasteManagementEventEntity item2 = _testData.CreateWasteManagementEvent();

            item2.EventId = "9245f8f5-9882-4e8d-a845-b5ff08e10087";

            exceptionEntityList.Add(item1);
            exceptionEntityList.Add(item2);

            var exceptionEntityQueryable = exceptionEntityList.AsQueryable();

            _dbSetMock = new Mock <DbSet <WasteManagementEventEntity> >();
            _dbSetMock.As <IQueryable <WasteManagementEventEntity> >().Setup(m => m.Expression).Returns(exceptionEntityQueryable.Expression);
            _dbSetMock.As <IQueryable <WasteManagementEventEntity> >().Setup(m => m.ElementType).Returns(exceptionEntityQueryable.ElementType);
            _dbSetMock.As <IQueryable <WasteManagementEventEntity> >().Setup(m => m.GetEnumerator()).Returns(exceptionEntityQueryable.GetEnumerator);
            _dbSetMock.As <IQueryable <WasteManagementEventEntity> >().Setup(m => m.Provider).Returns(exceptionEntityQueryable.Provider);

            _dbContextMock = new Mock <WasteManagementDbContext>();

            _dbContextMock.Setup(i => i.WasteManagementEvents).Returns(_dbSetMock.Object);

            _controller = new EventController(_dbContextMock.Object);
        }
Esempio n. 2
0
        public ActionResult <WasteManagementEvent> Get(string eventId)
        {
            WasteManagementEventEntity exceptionEntity = _dbContext.WasteManagementEvents
                                                         .Include(ei => ei.Images)
                                                         .Include(ei => ei.Videos)
                                                         .Include(ei => ei.ExceptionDetails)
                                                         .Where(ei => ei.EventId == eventId).FirstOrDefault();

            if (exceptionEntity == null)
            {
                return(NoContent());
            }
            return(_transformer.TransformToExceptionModel(exceptionEntity));
        }
Esempio n. 3
0
        public WasteManagementEvent TransformToExceptionModel(WasteManagementEventEntity entity)
        {
            WasteManagementEvent wasteManagementEventModel = new WasteManagementEvent
            {
                Vin           = entity.Vin,
                AccountId     = entity.AccountId,
                EventId       = entity.EventId,
                EventType     = entity.EventType,
                TransactionId = entity.TransactionId,
                DateTime      = TimeZoneInfo.ConvertTime(entity.DateTime, pstTimeZone, TimeZoneInfo.Utc),
                Address       = new Address()
                {
                    Street1 = entity.Street1,
                    Street2 = entity.Street2,
                    City    = entity.City,
                    ZipCode = entity.ZipCode,
                    State   = entity.State,
                    Country = entity.Country,
                },
                Latitude       = entity.Latitude,
                Longitude      = entity.Longitude,
                ContainerColor = entity.ContainerColor,
                ContainerSize  = entity.ContainerSize,
                VideoStatus    = entity.VideoStatus,
                ContainerType  = entity.ContainerType
            };



            if (entity.ExceptionDetails != null)
            {
                wasteManagementEventModel.ExceptionDetails = new ExceptionDetails
                {
                    Type          = entity.ExceptionDetails.Type,
                    Description   = entity.ExceptionDetails.Description,
                    ContactName   = entity.ExceptionDetails.ContactName,
                    ContactNumber = entity.ExceptionDetails.ContactNumber,
                    Notes         = entity.ExceptionDetails.Notes,
                    PictureUrls   = TransformExceptionUrlEnityListToArray(entity.Images)
                };
            }

            if (entity.Videos != null)
            {
                wasteManagementEventModel.VideoUrls = TransformToVideoUrlList(entity.Videos);
            }
            return(wasteManagementEventModel);
        }
Esempio n. 4
0
        public ActionResult Create([FromBody] WasteManagementEvent data)
        {
            bool isRecordExists = _dbContext.WasteManagementEvents.Any(o => o.EventId == data.EventId);

            if (!isRecordExists)
            {
                WasteManagementEventEntity wasteManagementEvent = _transformer.TransformToExceptionEntity(data);
                _dbContext.WasteManagementEvents.Add(wasteManagementEvent);
                _dbContext.SaveChanges();
                return(new StatusCodeResult(201));
            }
            else
            {
                return(new ValidationFailedResult(new ValidationResultModel(string.Format("Record with EventId \"{0}\" already exists.", data.EventId))));
            }
        }
Esempio n. 5
0
        public void TestTransformToExceptionModel()
        {
            WasteManagementEventEntity wasteManagementEventEntity = _testData.CreateWasteManagementEvent();

            WasteManagementEvent result = _transformer.TransformToExceptionModel(wasteManagementEventEntity);

            Assert.AreEqual(wasteManagementEventEntity.Vin, result.Vin);
            Assert.AreEqual(wasteManagementEventEntity.AccountId, result.AccountId);
            Assert.AreEqual(wasteManagementEventEntity.EventId, result.EventId);
            Assert.AreEqual(wasteManagementEventEntity.EventType, result.EventType);
            Assert.AreEqual(wasteManagementEventEntity.TransactionId, result.TransactionId);
            Assert.AreEqual(wasteManagementEventEntity.DateTime, result.DateTime);
            Assert.AreEqual(wasteManagementEventEntity.Longitude, result.Longitude);
            Assert.AreEqual(wasteManagementEventEntity.Latitude, result.Latitude);

            Assert.AreEqual(wasteManagementEventEntity.Street1, result.Address.Street1);
            Assert.AreEqual(wasteManagementEventEntity.Street2, result.Address.Street2);
            Assert.AreEqual(wasteManagementEventEntity.City, result.Address.City);
            Assert.AreEqual(wasteManagementEventEntity.State, result.Address.State);
            Assert.AreEqual(wasteManagementEventEntity.ZipCode, result.Address.ZipCode);
            Assert.AreEqual(wasteManagementEventEntity.Country, result.Address.Country);

            Assert.AreEqual(wasteManagementEventEntity.ExceptionDetails.Type, result.ExceptionDetails.Type);
            Assert.AreEqual(wasteManagementEventEntity.ContainerColor, result.ContainerColor);
            Assert.AreEqual(wasteManagementEventEntity.ContainerSize, result.ContainerSize);
            Assert.AreEqual(wasteManagementEventEntity.ExceptionDetails.Description, result.ExceptionDetails.Description);
            Assert.AreEqual(wasteManagementEventEntity.ExceptionDetails.Notes, result.ExceptionDetails.Notes);

            List <string> urls = new List <string>(result.ExceptionDetails.PictureUrls);

            Assert.IsTrue(urls.Any(item => item == TestDataCreator.Url1));
            Assert.IsTrue(urls.Any(item => item == TestDataCreator.Url2));

            VideoUrl    videoUrl       = result.VideoUrls.First();
            VideoEntity videoUrlEntity = wasteManagementEventEntity.Videos.First();

            Assert.AreEqual(videoUrl.Heading, videoUrlEntity.Heading);
            Assert.AreEqual(videoUrl.Latitude, videoUrlEntity.Latitude);
            Assert.AreEqual(videoUrl.Longitude, videoUrlEntity.Longitude);
            Assert.AreEqual(videoUrl.MDTUrl, videoUrlEntity.MDTUrl);
            Assert.AreEqual(videoUrl.Url, videoUrlEntity.VideoURL);
            Assert.AreEqual(videoUrl.Speed, videoUrlEntity.Speed);
            Assert.AreEqual(videoUrl.EndDateTime, videoUrlEntity.EndDateTime);
            Assert.AreEqual(videoUrl.StartDateTime, videoUrlEntity.StartDateTime);
            Assert.AreEqual(videoUrl.Camera, videoUrlEntity.CameraChannel);
        }
Esempio n. 6
0
        public WasteManagementEventEntity TransformToExceptionEntity(WasteManagementEvent model)
        {
            WasteManagementEventEntity wasteManagementEventEntity = new WasteManagementEventEntity
            {
                Vin            = model.Vin,
                AccountId      = model.AccountId,
                EventId        = model.EventId,
                EventType      = model.EventType,
                TransactionId  = model.TransactionId,
                DateTime       = TimeZoneInfo.ConvertTimeFromUtc(model.DateTime, pstTimeZone),
                Street1        = model.Address.Street1,
                Street2        = model.Address.Street2,
                City           = model.Address.City,
                ZipCode        = model.Address.ZipCode,
                State          = model.Address.State,
                Country        = model.Address.Country,
                Latitude       = model.Latitude,
                Longitude      = model.Longitude,
                DateReceived   = TimeZoneInfo.ConvertTimeFromUtc(System.DateTime.UtcNow, pstTimeZone),
                ContainerColor = model.ContainerColor,
                ContainerSize  = model.ContainerSize,
                ContainerType  = model.ContainerType
            };

            if (model.ExceptionDetails != null)
            {
                wasteManagementEventEntity.ExceptionDetails = new ExceptionDetailsEntity
                {
                    Type          = model.ExceptionDetails.Type,
                    ContactName   = model.ExceptionDetails.ContactName,
                    ContactNumber = model.ExceptionDetails.ContactNumber,
                    Description   = model.ExceptionDetails.Description,
                    Notes         = model.ExceptionDetails.Notes
                };
                wasteManagementEventEntity.Images = TransformToExceptionUrlEntityList(model.ExceptionDetails.PictureUrls);
            }

            if (model.VideoUrls != null)
            {
                wasteManagementEventEntity.Videos = TransformToVideoUrlEntityList(model.EventId, model.VideoUrls);
            }

            return(wasteManagementEventEntity);
        }
Esempio n. 7
0
        public ActionResult Update(string eventId, [FromBody] Video data)
        {
            var isRecordExists = _dbContext.WasteManagementEvents.Any(o => o.EventId == eventId);

            if (isRecordExists)
            {
                WasteManagementEventEntity wasteManagementEvent = _dbContext.WasteManagementEvents.Where(o => o.EventId == eventId).First();
                wasteManagementEvent.VideoStatus = data.VideoStatus;
                _dbContext.WasteManagementEvents.Update(wasteManagementEvent);

                ICollection <VideoEntity> videoUrls = _transformer.TransformToVideoUrlEntityList(eventId, data.VideoUrls);
                if (videoUrls.Count() != 0)
                {
                    _dbContext.Videos.AddRange(videoUrls);
                }
                _dbContext.SaveChanges();
                return(new OkResult());
            }
            else
            {
                return(new ValidationFailedResult(new ValidationResultModel(string.Format("Record with EventId \"{0}\" doesn't exist.", eventId))));
            }
        }
Esempio n. 8
0
        public WasteManagementEventEntity CreateWasteManagementEvent()
        {
            var urls = new List <ImageEntity>
            {
                new ImageEntity
                {
                    ImageURL = Url2
                },
                new ImageEntity
                {
                    ImageURL = Url1
                }
            };

            var videoUrls = new List <VideoEntity>
            {
                new VideoEntity()
                {
                    Altitude      = Altitude,
                    StartDateTime = VideoStartDateTime,
                    EndDateTime   = VideoEndDateTime,
                    Heading       = Heading,
                    Latitude      = VideoLatitude,
                    Longitude     = VideoLongitude,
                    Speed         = Speed,
                    MDTUrl        = "www.yahoo.com/video1",
                    VideoURL      = "www.yahoo.com/video1",
                    CameraChannel = 1
                }
            };

            var wasteManagementEventEntity = new WasteManagementEventEntity
            {
                Vin            = Vin,
                EventId        = EventId,
                AccountId      = AccountId,
                EventType      = EventType,
                TransactionId  = TransactionId,
                DateTime       = System.DateTime.Now.ToUniversalTime(),
                Longitude      = Longitude,
                Latitude       = Latitude,
                Street1        = Street1,
                Street2        = Street2,
                City           = City,
                State          = State,
                ZipCode        = ZipCode,
                Country        = Country,
                ContainerColor = ContainerColor,
                ContainerSize  = ContainerSize,

                ExceptionDetails = new ExceptionDetailsEntity()
                {
                    Type        = ExceptiuonType,
                    Description = ExceptionDescription,
                    Notes       = ExceptionNotes
                },

                Images = urls,
                Videos = videoUrls
            };

            return(wasteManagementEventEntity);
        }