Пример #1
0
        public async Task DeleteEventParent(EventParent eventParent, IList <Ticket> tickets)
        {
            using var transaction = await _dataContext.Database.BeginTransactionAsync();

            try
            {
                eventParent.Deleted = true;
                _dataContext.Update(eventParent);

                foreach (var ticket in tickets)
                {
                    ticket.Deleted = true;
                }

                _dataContext.UpdateRange(tickets);

                await _dataContext.SaveChangesAsync();

                // Commit transaction if all commands succeed, transaction will auto-rollback
                // when disposed if either commands fails
                await transaction.CommitAsync();
            }
            catch (Exception e)
            {
                await transaction.RollbackAsync();

                throw new Exception(e.ToString());
            }
        }
Пример #2
0
        public void MapEventParent_EntityWithAllAssociated_EverythingMapped()
        {
            var entity = new EventParent
            {
                Id          = 1,
                UserId      = "foo",
                Name        = "bar",
                Description = "baz",
                User        = new User {
                    Id = "foo"
                }
            };
            var expected = new EventParentModel
            {
                Id          = 1,
                Name        = "bar",
                Description = "baz"
            };

            var actual = target.Map <EventParentModel>(entity);

            Assert.AreEqual(expected.Id, actual.Id);
            Assert.AreEqual(expected.Name, actual.Name);
            Assert.AreEqual(expected.Description, actual.Description);
        }
Пример #3
0
        public void Delete_ValidIdAndUser_ContextDeleteCalled()
        {
            var entity = new EventParent {
                Id = 1, UserId = User.Id
            };
            var contextMock = new Mock <IOnTaskDbContext>();

            contextMock.Setup(x => x.GetEventParentByIdTracked(It.Is <int>(y => y == entity.Id))).Returns(entity).Verifiable();
            contextMock.Setup(x => x.DeleteEventParent(It.Is <EventParent>(y => y == entity))).Verifiable();
            var target = InitializeTarget(contextMock.Object);

            target.Delete(entity.Id);

            contextMock.Verify();
        }
Пример #4
0
        public void GetById_InvalidUserId_ReturnsNull()
        {
            int id     = 1;
            var entity = new EventParent {
                Id = id, UserId = InvalidUserId
            };
            var contextMock = new Mock <IOnTaskDbContext>();

            contextMock.Setup(x => x.GetEventParentById(It.Is <int>(y => y == id))).Returns(entity).Verifiable();
            var target = InitializeTarget(contextMock.Object);

            var actual = target.GetById(id);

            contextMock.Verify();
            Assert.IsNull(actual);
        }
Пример #5
0
        public void Update_ValidIdAndUserId_ContextSaveIsCalled()
        {
            var model = new EventParentModel {
                Id = 1
            };
            var entity = new EventParent {
                Id = model.Id.Value, UserId = User.Id
            };
            var contextMock = new Mock <IOnTaskDbContext>();

            contextMock.Setup(x => x.GetEventParentByIdTracked(It.Is <int>(y => y == model.Id))).Returns(entity).Verifiable();
            contextMock.Setup(x => x.SaveChanges()).Verifiable();
            var target = InitializeTarget(contextMock.Object);

            target.Update(model);

            contextMock.Verify();
        }
Пример #6
0
        public void GetById_ValidIdAndUserId_ReturnsModel()
        {
            int id     = 1;
            var entity = new EventParent {
                Id = id, UserId = User.Id
            };
            var expected = new EventParentModel {
                Id = id
            };
            var contextMock = new Mock <IOnTaskDbContext>();

            contextMock.Setup(x => x.GetEventParentById(It.Is <int>(y => y == id))).Returns(entity).Verifiable();
            var mapperMock = new Mock <IMapperService>();

            mapperMock.Setup(x => x.Map <EventParentModel>(It.Is <EventParent>(y => y == entity), It.IsAny <object>())).Returns(expected).Verifiable();
            var target = InitializeTarget(contextMock.Object, mapperMock.Object);

            var actual = target.GetById(id);

            contextMock.Verify();
            Assert.AreEqual(expected.Id, actual.Id);
        }
Пример #7
0
 /// <summary>
 /// Inserts an <see cref="EventParent"/> class.
 /// </summary>
 /// <param name="entity">The entity to insert.</param>
 public void InsertEventParent(EventParent entity)
 {
     EventParents.Add(entity);
     SaveChanges();
 }
Пример #8
0
 /// <summary>
 /// Deletes an <see cref="EventParent"/> class.
 /// </summary>
 /// <param name="entity">The entity to delete.</param>
 public void DeleteEventParent(EventParent entity)
 {
     EventParents.Remove(entity);
     SaveChanges();
 }
Пример #9
0
 public async Task UpdateEventParent(EventParent eventParent)
 {
     _dataContext.Update(eventParent);
     await _dataContext.SaveChangesAsync();
 }
Пример #10
0
 public async Task CreateEventParent(EventParent eventParent)
 {
     eventParent.Deleted = false;
     _dataContext.Add(eventParent);
     await _dataContext.SaveChangesAsync();
 }
Пример #11
0
        public async Task <IActionResult> Create([FromBody] EventParentDto model)
        {
            var currentUser = await _identityService.GetCurrentUser();

            if (currentUser == null)
            {
                return(BadRequest(new { error = "You are not allowed!" }));
            }

            if (!ModelState.IsValid)
            {
                return(NotFound());
            }

            if (model == null)
            {
                return(NotFound());
            }

            var person = await _identityService.GetPersonByUserId(currentUser.Id);

            if (person == null)
            {
                return(BadRequest(new { error = "Person was not found" }));
            }

            var eventType = await _eventTypeService.GetEventTypeById(model.EventTypeId);

            if (eventType == null)
            {
                return(BadRequest(new { error = "Selected event type was not found" }));
            }

            var eventGenre = await _eventGenreService.GetEventGenreById(model.EventGenreId);

            if (eventGenre == null)
            {
                return(BadRequest(new { error = "Selected event eventParent was not found" }));
            }

            var location = await _locationService.GetLocationById(model.LocationId);

            if (location == null)
            {
                return(BadRequest(new { error = "Selected location was not found" }));
            }

            var eventTypeXEventGenreExists = await _eventTypeXEventGenreService.ExistsEventTypeXEventGenre(model.EventTypeId, model.EventGenreId);

            if (!eventTypeXEventGenreExists)
            {
                return(BadRequest(new { error = "Link between type and genre was not found" }));
            }

            bool result = Uri.TryCreate(model.PhotoURL, UriKind.Absolute, out Uri uriResult) &&
                          (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);

            if (result == false)
            {
                return(BadRequest(new { error = "Photo URL is not valid" }));
            }

            var eventParent = new EventParent()
            {
                Name         = model.Name,
                Description  = model.Description,
                Deleted      = model.Deleted,
                PersonId     = person.Id,
                EventTypeId  = model.EventTypeId,
                EventGenreId = model.EventGenreId,
                LocationId   = model.LocationId,
                DateAndHour  = model.DateAndHour,
                PhotoURL     = model.PhotoURL
            };

            await _eventParentService.CreateEventParent(eventParent);

            return(Ok(eventParent));
        }