public IActionResult CreateDataset([FromRoute] long userId, [FromBody] NewDataset dataset) { try { return(StatusCode(StatusCodes.Status201Created, datasetService.CreateDataset(userId, dataset))); } catch (AuthenticationException) { return(StatusCode(StatusCodes.Status401Unauthorized)); } catch (ArgumentException) { return(StatusCode(StatusCodes.Status400BadRequest)); } }
public void UpdateDataset(long datasetId, long userId, NewDataset newDataset) { try { Dataset dataset = datasetDAO.Find(datasetId); if (dataset.UserId != userId) { throw new AuthenticationException(); } dataset.Title = newDataset.Title.Trim(); dataset.Public = newDataset.Public; dataset.LastModification = DateTime.Now; datasetDAO.Update(dataset); IList <Image> newImages = new List <Image>(); foreach (NewImage image in newDataset.Images) { newImages.Add(new Image() { DatasetId = datasetId, Name = image.Name.Trim(), Size = image.File.Length, File = image.File }); } IList <Image> oldImages = imageDAO.FindByDatasetId(datasetId); foreach (Image image in oldImages.Except(newImages)) { imageDAO.Delete(image.DatasetId, image.Name); } foreach (Image image in newImages.Except(oldImages)) { imageDAO.Insert(image); } } catch (InstanceNotFoundException) { throw new NotFoundException(datasetId); } }
public long CreateDataset(long userId, NewDataset newDataset) { if (userProfileDAO.Exists(userId)) { try { Dataset dataset = new() { UserId = userId, Title = newDataset.Title.Trim(), Public = newDataset.Public, LastModification = DateTime.Now }; datasetDAO.Insert(dataset); foreach (NewImage newImage in newDataset.Images) { imageDAO.Insert(new Image() { DatasetId = dataset.Id, Name = newImage.Name.Trim(), Size = newImage.File.Length, File = newImage.File }); } return(dataset.Id); } catch (SqlException e) { throw new ArgumentException(e.Message); } } else { throw new AuthenticationException(); } }
public IActionResult UpdateDataset([FromRoute] long datasetId, [FromRoute] long userId, [FromBody] NewDataset dataset) { try { datasetService.UpdateDataset(datasetId, userId, dataset); return(StatusCode(StatusCodes.Status204NoContent)); } catch (AuthenticationException) { return(StatusCode(StatusCodes.Status401Unauthorized)); } catch (NotFoundException) { return(StatusCode(StatusCodes.Status404NotFound)); } }