public TagWork ConnectTagAndWork(ConnectTagWorkInput inputTagWork) { _logger.LogInformation($"Creating connect between tag (id = {inputTagWork.TagId}) and work (id = {inputTagWork.WorkId})"); var connect = _data.EfContext.TagWorks.FirstOrDefault(tw => tw.TagId == inputTagWork.TagId && tw.WorkId == inputTagWork.WorkId); if (connect != null) { _logger.LogInformation("Connect already exists"); return(null); } var work = _data.EfContext.Works.Find(inputTagWork.WorkId); var tag = _data.EfContext.Tags.Find(inputTagWork.TagId); var tagWork = new TagWork() { Tag = tag, TagId = inputTagWork.TagId, Work = work, WorkId = inputTagWork.WorkId }; var createdConnection = _data.EfContext.TagWorks.Add(tagWork); _data.EfContext.SaveChanges(); _logger.LogInformation($"Connect between tag (id = {inputTagWork.TagId}) and work (id = {inputTagWork.WorkId}) is created successfully"); return(createdConnection.Entity); }
public TagWork DisconnectTagAndWork(ConnectTagWorkInput inputTagWork) { _logger.LogInformation($"Disconnecting between tag (id = {inputTagWork.TagId}) and work (id = {inputTagWork.WorkId})"); var connect = _data.EfContext.TagWorks.FirstOrDefault(tw => tw.TagId == inputTagWork.TagId && tw.WorkId == inputTagWork.WorkId); if (connect != null) { _data.EfContext.TagWorks.Remove(connect); _data.EfContext.SaveChanges(); _logger.LogInformation($"Disconnecting between tag (id = {inputTagWork.TagId}) and work (id = {inputTagWork.WorkId}) is successfully"); return(connect); } _logger.LogInformation("Connect has not found"); return(null); }