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());
            }
        }
Example #2
0
 //read
 public AttachmentModel GetAttachmentId(AttachmentKeyModel model)
 {
     if (!_authorization.Read(model))
     {
         throw new UnauthorizedAccessException();
     }
     return(_business.GetAttachmentId(model));
 }
Example #3
0
 //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);
        }
Example #5
0
        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());
        }
Example #6
0
        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();
 }