public DetailedUpsellSubmissionDto(UpsellSubmissionDto record, IEnumerable<UpsellProductChangeDto> products, IEnumerable<UpsellNoteDto> notes, IEnumerable<UpsellAuditDto> auditTrail) { RecordId = record.RecordId; SubscriberId = record.SubscriberId; SubscriberName = record.SubscriberName; SubscriberAddress = record.SubscriberAddress; TelephoneNumber = record.TelephoneNumber; SubmittedBy = record.SubmittedBy; AuthorizedBy = record.AuthorizedBy; SubmissionDateOffset = record.SubmissionDateOffset; Status = record.Status; LastTouchedBy = record.LastTouchedBy; LastTouchedAt = record.LastTouchedAt; BillingOrderNumber = record.BillingOrderNumber; Products = products; Notes = notes; AuditTrail = auditTrail; }
private UpsellAddRecordResult GetRecordResult(int newRecordId,UpsellSubmissionDto submittedRecord,string submittedDate, List<UpsellSubmittedProduct> submittedProducts) { var newRecord = new UpsellSubmittedOrder() { SimpleId = newRecordId, SubscriberId = submittedRecord.SubscriberId, SubscriberName = submittedRecord.SubscriberName, TelephoneNumber = submittedRecord.TelephoneNumber, SubmittedBy = submittedRecord.SubmittedBy, SubmissionDate = submittedDate, StatusDescription = UpsellStatus.New.ToString(), AuthorizedBy = submittedRecord.AuthorizedBy, AccountType = submittedRecord.AccountType.ToUpsellAccountType(), }; return new UpsellAddRecordResult() { UpsellNewRecord = newRecord, UpsellNewlyAddedProducts = submittedProducts }; }
public UpsellAddRecordResult AddRecord(UpsellSubmissionDto submission, IEnumerable<UpsellProductChangeDto> products) { // insert UpsellProducts entries var offlineProducts = new List<UpsellSubmittedProduct>(); DateTimeOffset submissionDate = new DateTimeOffset(DateTime.Now); int newId; using (var db = new UpsellEntities()) { var address = submission.SubscriberAddress; var newRecord = new UpsellSubmission { subscriber_id = submission.SubscriberId, subscriber_name = submission.SubscriberName, subscriber_address1 = address.Address1, subscriber_address2 = address.Address2, subscriber_city = address.City, subscriber_state = address.State, subscriber_zipcode = address.Zip, telephone_number = submission.TelephoneNumber, submitted_by = submission.SubmittedBy, authorized_by = submission.AuthorizedBy, submission_date = submissionDate, upsell_status = (int) UpsellStatus.New, last_touched_by = string.Empty, last_touched_at = null, account_type = (int)submission.AccountType }; // insert UpsellSubmissions entry db.UpsellSubmissions.AddObject(newRecord); db.SaveChanges(); newId = newRecord.id; foreach (var product in products) { var newProduct = new UpsellProductChanges { upsell_id = newRecord.id, product_name = product.Name, product_description = product.Description, product_action = product.Action.GetStringValue() }; db.UpsellProductChanges.AddObject(newProduct); db.SaveChanges(); //prepare products for offline submission as well. //Capturing here since we need product id for further processing offlineProducts.Add(new UpsellSubmittedProduct { ProductId = newProduct.id, ProductName = product.Name, ProductDescription = product.Description, productAction = product.Action.GetStringValue() }); } } return GetRecordResult(newId, submission, submissionDate.ToString(), offlineProducts); }