public async Task RemoveOriginAsync(Data.Shared.Models.Origin origin) { var children = _originRepository.GetSomeAsync(o => o.ParentOriginId == origin.OriginId, track: true); var updateOrigins = new List <Origin>(); await foreach (var childOrigin in children) { childOrigin.ParentOrigin = null; childOrigin.ParentOriginId = null; updateOrigins.Add(childOrigin); } await _originRepository.UpdateSomeAsync(updateOrigins); await _originRepository.RemoveAsync(origin.AsStore()); }
public async Task <Data.Shared.Models.Origin> AddOrUpdateOriginAsync(Data.Shared.Models.Origin origin, string userId) { origin.DateModified = DateTime.UtcNow; origin.CreatedBy = userId; if (origin.Location != null && origin.Location.IsNotEmpty()) { origin.Location = await _locationService.AddOrUpdateLocationAsync(origin.Location); } if (origin.ParentOrigin != null && origin.ParentOrigin.OriginId == 0) { var parentOrigin = await _originRepository.AddOrUpdateAsync(l => l.Id == origin.ParentOrigin.OriginId, origin.ParentOrigin.AsStore()); origin.ParentOrigin = parentOrigin.AsModel(); } var originResult = await _originRepository.AddOrUpdateAsync(l => l.Id == origin.OriginId, origin.AsStore()); return(originResult.AsModel()); }