public ActionResult GetAttachmentId(AttachmentKeyModel model) { try { model.CheckArgumentIsNull(nameof(model)); model.FieldName.CheckArgumentIsNullOrEmpty(nameof(model.FieldName)); model.EntityName.CheckArgumentIsNullOrEmpty(nameof(model.EntityName)); if (model.EntityId.HasValue()) { var attachmentId = attachmentBusiness.GetAttachmentId(model);//check read permission if (attachmentId == null) { return(Ok(attachmentBusiness.CreateAttachment(model)));//check create permission } return(Ok(attachmentId)); } else { var token = tokenProvider.GetAttachmentToken(); if (!token.HasValue()) { token = tokenProvider.SetAttachmentToken(); } var tempAttachmentKeyModel = new TemporaryAttachmentKeyModel { EntityName = model.EntityName, FieldName = model.FieldName, Token = token }; return(Ok(attachmentBusiness.CreateAttachmentTemporarily(tempAttachmentKeyModel)));//check create permission } } catch (Exception) { return(BadRequest()); } }
//read public AttachmentModel GetAttachmentId(AttachmentKeyModel model) { if (!_authorization.Read(model)) { throw new UnauthorizedAccessException(); } return(_business.GetAttachmentId(model)); }
//create public AttachmentModel CreateAttachment(AttachmentKeyModel model) { if (!_authorization.Create(model)) { throw new UnauthorizedAccessException(); } return(_business.CreateAttachment(model)); }
public AttachmentModel GetAttachmentId(AttachmentKeyModel model) { var attachment = _DbContext.Attachments.Where(x => x.EntityName == model.EntityName && x.FieldName == model.FieldName && x.EntityId == model.EntityId ) .Select(x => new AttachmentModel { AttachmentId = x.Id, TotalCount = x.AttachmentItems.Count() }).FirstOrDefault(); return(attachment); }
public void GetAttachmentId_PassValidArgument_LackofAttachment_GetBadRequest() { var model = new AttachmentKeyModel { EntityId = "1", FieldName = "Image", EntityName = "Person" }; var resultModel = new AttachmentModel { AttachmentId = 2, TotalCount = 0 }; attachmentBusiness.Setup((x) => x.GetAttachmentId(It.IsAny <AttachmentKeyModel>())).Returns((AttachmentModel)null); attachmentBusiness.Setup((x) => x.CreateAttachment(It.IsAny <AttachmentKeyModel>())).Returns(resultModel); attachmentController.Setup((x) => x.Ok(resultModel)); var result = attachmentController.Object.GetAttachmentId(model); attachmentController.Verify(x => x.Ok(resultModel), Times.Once()); }
public void GetAttachmentId_PassValidArgument_ExistingAttachment_GetBadRequest() { //arrange var model = new AttachmentKeyModel { EntityId = null, FieldName = "Image", EntityName = "Person" }; var resultModel = new AttachmentModel { AttachmentId = 2, TotalCount = 0 }; attachmentTokenProvider.Setup((x) => x.GetAttachmentToken()).Returns("1"); attachmentBusiness.Setup((x) => x.CreateAttachmentTemporarily(It.IsAny <TemporaryAttachmentKeyModel>())).Returns(resultModel); attachmentController.Setup((x) => x.Ok(resultModel)); //act var result = attachmentController.Object.GetAttachmentId(model); //assert attachmentController.Verify(x => x.Ok(resultModel), Times.Once()); }
public AttachmentModel CreateAttachment(AttachmentKeyModel model) { if (!model.EntityName.HasValue() || !model.FieldName.HasValue() || !model.EntityId.HasValue()) { throw new ArgumentNullException(); } var attachment = new Context.Attachment() { EntityName = model.EntityName, FieldName = model.FieldName, EntityId = model.EntityId }; _DbContext.Attachments.Add(attachment).State = EntityState.Added; _DbContext.SaveChanges(); return(new AttachmentModel { AttachmentId = attachment.Id, TotalCount = 0 }); }
public bool Read(AttachmentKeyModel model) { throw new NotImplementedException(); }