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()); } }
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); }
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(); }
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); }
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(); }
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); }
/// <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(); }
/// <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(); }
public async Task UpdateEventParent(EventParent eventParent) { _dataContext.Update(eventParent); await _dataContext.SaveChangesAsync(); }
public async Task CreateEventParent(EventParent eventParent) { eventParent.Deleted = false; _dataContext.Add(eventParent); await _dataContext.SaveChangesAsync(); }
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)); }