/// <summary> /// Adds billing information to the invoice /// </summary> /// <param name="value"> /// The <see cref="IInvoice"/> /// </param> /// <returns> /// The <see cref="Attempt"/>. /// </returns> public override Attempt<IInvoice> PerformTask(IInvoice value) { var noteDisplay = SalePreparation.Customer.ExtendedData.GetNote(); if (noteDisplay == null) return Attempt<IInvoice>.Succeed(value); var note = new Note { EntityKey = value.Key, EntityTfKey = EnumTypeFieldConverter.EntityType.GetTypeField(EntityType.Invoice).TypeKey, Message = noteDisplay.Message }; if (value.Notes != null) { if (value.Notes.All(x => x.Message != note.Message)) { value.Notes.Add(note); } } else { value.Notes = new System.Collections.Generic.List<Note> { note }; } return Attempt<IInvoice>.Succeed(value); }
/// <summary> /// Maps <see cref="NoteDisplay"/> to <see cref="INote"/>. /// </summary> /// <param name="noteDisplay"> /// The note display. /// </param> /// <returns> /// The <see cref="INote"/>. /// </returns> public static INote ToNote(this NoteDisplay noteDisplay) { var note = new Note(noteDisplay.EntityKey, noteDisplay.EntityTfKey) { Message = noteDisplay.Message, CreateDate = noteDisplay.RecordDate == DateTime.MinValue ? DateTime.Now : noteDisplay.RecordDate }; if (!noteDisplay.Key.Equals(Guid.Empty)) note.Key = noteDisplay.Key; return note; }