public static PeriodicalView Map(this PeriodicalModel source) => source == null ? null : new PeriodicalView { Id = source.Id, Title = source.Title, Description = source.Description, IssueCount = source.IssueCount };
public async Task UpdatePeriodical(int libraryId, PeriodicalModel periodical, CancellationToken cancellationToken) { using (var connection = _connectionProvider.GetConnection()) { var sql = @"Update Periodical Set Title = @Title, Description = @Description, CategoryId = @CategoryId Where Id = @Id AND LibraryId = @LibraryId"; var parameter = new { Id = periodical.Id, LibraryId = libraryId, Title = periodical.Title, Description = periodical.Description, CategoryId = periodical.CategoryId, }; var command = new CommandDefinition(sql, parameter, cancellationToken: cancellationToken); await connection.ExecuteScalarAsync <int>(command); } }
public async Task <PeriodicalModel> AddPeriodical(int libraryId, PeriodicalModel periodical, CancellationToken cancellationToken) { int id; using (var connection = _connectionProvider.GetConnection()) { var sql = "Insert Into Periodical (Title, [Description], CategoryId, ImageId, LibraryId) Output Inserted.Id Values (@Title, @Description, @CategoryId, @ImageId, @LibraryId)"; var parameter = new { LibraryId = libraryId, Title = periodical.Title, Description = periodical.Description, CategoryId = periodical.CategoryId, ImageId = periodical.ImageId, }; var command = new CommandDefinition(sql, parameter, cancellationToken: cancellationToken); id = await connection.ExecuteScalarAsync <int>(command); } return(await GetPeriodicalById(libraryId, id, cancellationToken)); }
public ActionResult Edit(PeriodicalModel model) { if (model.UploadImage != null) { string filePath = System.IO.Path.GetFileName(model.UploadImage.FileName); model.UploadImage.SaveAs(Server.MapPath("~/Images/" + filePath)); model.ImageName = filePath; } if (!ModelState.IsValid) { DataForDropDown(); return(View(model)); } var modelBL = _mapper.Map <PeriodicalBL>(model); _periodical.Update(modelBL); return(RedirectToAction("Index")); }
public PeriodicalView Render(PeriodicalModel source, int libraryId) { var result = source.Map(); var links = new List <LinkView> { _linkRenderer.Render(new Link { ActionName = nameof(PeriodicalController.GetPeriodicalById), Method = HttpMethod.Get, Rel = RelTypes.Self, Parameters = new { libraryId = libraryId, periodicalId = source.Id } }), _linkRenderer.Render(new Link { ActionName = nameof(IssueController.GetIssues), Method = HttpMethod.Get, Rel = RelTypes.Issues, Parameters = new { libraryId = libraryId, periodicalId = source.Id }, QueryString = new Dictionary <string, string> { { "authorid", source.Id.ToString() } } }) }; if (!string.IsNullOrWhiteSpace(source.ImageUrl) && _fileStorage.SupportsPublicLink) { links.Add(new LinkView { Href = _fileStorage.GetPublicUrl(source.ImageUrl), Method = "GET", Rel = RelTypes.Image, Accept = MimeTypes.Jpg }); } else if (source.ImageId.HasValue) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(FileController.GetFile), Method = HttpMethod.Get, Rel = RelTypes.Image, Parameters = new { fileId = source.ImageId.Value } })); } if (_userHelper.IsWriter(libraryId) || _userHelper.IsAdmin || _userHelper.IsLibraryAdmin(libraryId)) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(PeriodicalController.UpdatePeriodical), Method = HttpMethod.Put, Rel = RelTypes.Update, Parameters = new { libraryId = libraryId, periodicalId = source.Id } })); links.Add(_linkRenderer.Render(new Link { ActionName = nameof(PeriodicalController.DeletePeriodical), Method = HttpMethod.Delete, Rel = RelTypes.Delete, Parameters = new { libraryId = libraryId, periodicalId = source.Id } })); links.Add(_linkRenderer.Render(new Link { ActionName = nameof(IssueController.CreateIssue), Method = HttpMethod.Post, Rel = RelTypes.CreateIssue, Parameters = new { libraryId = libraryId, periodicalId = source.Id } })); links.Add(_linkRenderer.Render(new Link { ActionName = nameof(PeriodicalController.UpdatePeriodicalImage), Method = HttpMethod.Put, Rel = RelTypes.ImageUpload, Parameters = new { libraryId = libraryId, periodicalId = source.Id } })); } result.Links = links; return(result); }
public ActionResult Delete(PeriodicalModel model) { _periodical.Remove(model.Id); return(RedirectToAction("Index")); }