forked from MDCPS/DamageAssessment_Backend
Copy from old Repository
This commit is contained in:
@ -0,0 +1,145 @@
|
||||
using Azure;
|
||||
using DamageAssesment.Api.Attachments.Interfaces;
|
||||
using DamageAssesment.Api.Attachments.Models;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Net.Http.Headers;
|
||||
|
||||
namespace DamageAssesment.Api.Attachments.Controllers
|
||||
{
|
||||
[Route("api")]
|
||||
[ApiController]
|
||||
public class AttachmentsController : ControllerBase
|
||||
{
|
||||
private IAttachmentsProvider AttachmentProvider;
|
||||
private IUploadService UploadService;
|
||||
|
||||
public AttachmentsController(IAttachmentsProvider AttachmentsProvider, IUploadService uploadService)
|
||||
{
|
||||
this.AttachmentProvider = AttachmentsProvider;
|
||||
this.UploadService = uploadService;
|
||||
}
|
||||
//get all Attachments
|
||||
[HttpGet("Attachments")]
|
||||
public async Task<ActionResult> GetAttachmentsAsync()
|
||||
{
|
||||
|
||||
var result = await AttachmentProvider.GetAttachmentsAsync();
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Attachments);
|
||||
}
|
||||
return NoContent();
|
||||
|
||||
}
|
||||
//get all Attachment by Id
|
||||
[HttpGet("Attachments/{id}")]
|
||||
public async Task<ActionResult> GetAttachmentbyIdAsync(int id)
|
||||
{
|
||||
|
||||
var result = await AttachmentProvider.GetAttachmentByIdAsync(id);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Attachment);
|
||||
}
|
||||
return NotFound();
|
||||
|
||||
}
|
||||
////Save new Attachment
|
||||
//[HttpPost("Attachments"), DisableRequestSizeLimit]
|
||||
//public async Task<IActionResult> UploadAsync(int responseId, int answerId, List<IFormFile> postedFile)
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
|
||||
// if (postedFile.Count > 0)
|
||||
// {
|
||||
// //Upload logic for all files
|
||||
// var Attachments= await this.AttachmentProvider.DeleteAttachmentsAsync(responseId,answerId);
|
||||
// List<Db.Attachment> attachments = UploadService.UploadAttachment(responseId, answerId, Attachments.counter, postedFile);
|
||||
// //inserting all uploaded files in database
|
||||
// var result = await this.AttachmentProvider.PostAttachmentAsync(attachments);
|
||||
// if (result.IsSuccess)
|
||||
// {
|
||||
// return Ok(result.Attachments);
|
||||
// }
|
||||
// return BadRequest(result.ErrorMessage);
|
||||
// }
|
||||
// return NoContent();
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// return BadRequest($"Internal server error: {ex}");
|
||||
// }
|
||||
//}
|
||||
|
||||
//Save new Attachment
|
||||
[HttpPost("Attachments"), DisableRequestSizeLimit]
|
||||
public async Task<IActionResult> UploadAttachmentAsync(AttachmentInfo attachmentInfo)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (attachmentInfo.Answers.Count > 0)
|
||||
{
|
||||
var Attachments = await this.AttachmentProvider.GetAttachmentCounter();
|
||||
List<Db.Attachment> attachments = UploadService.UploadAttachment(attachmentInfo.ResponseId, Attachments.counter, attachmentInfo.Answers);
|
||||
var result = await this.AttachmentProvider.PostAttachmentAsync(attachments);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Attachments);
|
||||
}
|
||||
return NoContent();
|
||||
}
|
||||
return BadRequest();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return BadRequest($"Internal server error: {ex}");
|
||||
}
|
||||
}
|
||||
|
||||
//Save new Attachment
|
||||
[HttpPut("Attachments"), DisableRequestSizeLimit]
|
||||
public async Task<IActionResult> UpdateAttachmentAsync(AttachmentInfo attachmentInfo)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (attachmentInfo.Answers.Count > 0)
|
||||
{
|
||||
var res = await this.AttachmentProvider.GetAttachmentInfo(attachmentInfo.Answers);
|
||||
if (res.IsSuccess)
|
||||
{
|
||||
List<Db.Attachment> attachments = UploadService.UpdateAttachments(attachmentInfo.ResponseId, attachmentInfo.Answers, res.Attachments);
|
||||
var result = await this.AttachmentProvider.PutAttachmentAsync(attachments);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
return Ok(result.Attachments);
|
||||
}
|
||||
return NoContent();
|
||||
}
|
||||
return NoContent();
|
||||
}
|
||||
return BadRequest();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return BadRequest($"Internal server error: {ex}");
|
||||
}
|
||||
}
|
||||
//delete existing Attachment
|
||||
[HttpDelete("Delete")]
|
||||
public async Task<IActionResult> DeleteAttachment(int Id)
|
||||
{
|
||||
// database soft delete
|
||||
var result = await this.AttachmentProvider.DeleteAttachmentAsync(Id);
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
// deleting file from folder
|
||||
UploadService.Movefile(result.Attachment.URI);
|
||||
return Ok(result.Attachment);
|
||||
}
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user