public Annotation Create(CreateAnnotationCommand cmd) { try { using (var transaction = context.Database.BeginTransaction()) { var from = NullVerifier(() => context.Documents .Include(d => d.File) .FirstOrDefault(d => d.Id == cmd.FromDocumentId)); if (from.File == null) { throw new FormFieldError(FormFieldError.notFound, "file"); } var to = context.Documents.FirstOrDefault(d => d.DocumentTypeId == cmd.ToDocumentTypeId && d.EntityId == cmd.ToEntityId && d.Number == cmd.ToNumber && d.PublicationYear == cmd.ToPublicationYear ); var annotation = new Annotation { AnnotationTypeId = cmd.AnnotationTypeId, Description = cmd.Description, FromDocumentId = from.Id }; if (to == null) { to = new Document { DocumentTypeId = cmd.ToDocumentTypeId, EntityId = cmd.ToEntityId, Number = cmd.ToNumber, PublicationYear = cmd.ToPublicationYear, PublicationDate = cmd.ToPublicationDate }; context.Documents.Add(to); context.SaveChanges(); } if (from.PublicationYear < to.PublicationYear) { throw new FormFieldError(FormFieldError.invalidDate, new[] { "toPublicationYear", "fromPublicationYear" }); } // TODO - verificar si el año es el mismo y la entidad es la misma entonces el numero debe ser mayor siempre que sea parseables a numeros annotation.ToDocumentId = to.Id; context.Annotations.Add(annotation); context.SaveChanges(); context.Database.CommitTransaction(); return(annotation); } } catch (Exception e) { throw WrapOracleException(e); } }
private void CreateAnnotationImpl(CreateAnnotationCommand command) { AnnotationModel annotationModel = currentWorkspace.AddAnnotation( command.AnnotationText, command.AnnotationDescriptionText, command.ModelGuid); CurrentWorkspace.RecordCreatedModel(annotationModel); }
public void CreateAnnotationCommand_Constructor() { //Arrange XmlDocument xmlDocument = new XmlDocument(); var guid = Guid.NewGuid(); IEnumerable <Guid> annotationGuid = new[] { guid }; //Act var command1 = new CreateAnnotationCommand(annotationGuid, string.Empty, string.Empty, 100, 100, true); var serializedCommand = command1.Serialize(xmlDocument); //Assert Assert.IsNotNull(command1); Assert.AreEqual(command1.ModelGuid.ToString(), guid.ToString()); Assert.IsNotNull(serializedCommand); }
void CreateAnnotationImpl(CreateAnnotationCommand command) { AnnotationModel annotationModel = currentWorkspace.AddAnnotation(command.AnnotationText, command.ModelGuid); CurrentWorkspace.RecordCreatedModel(annotationModel); }
public IActionResult Post([FromBody] CreateAnnotationCommand cmd) => createCommand.Execute(cmd).Match( Succ: x => x.Match <IActionResult>(Ok, BadRequest), Fail: ex => StatusCode(500, ex) );