private bool Validate(out Dictionary <string, string> valErrors) { valErrors = new Dictionary <string, string>(); if (CapitalRequestID <= 0) { valErrors.Add("CapitalRequestID", "Capital Request ID is required."); } if (VendorID == 0 && String.IsNullOrWhiteSpace(VendorName)) { valErrors.Add("Vendor", "A vendor is required."); } if (QuoteBlobID <= 0) { valErrors.Add("Quote", "A quote must be attached to the bid. "); } if (BidAmount <= 0) { valErrors.Add("Quoted Price", "Quoted Price is required and must be greater than 0."); } if (VendorContactPhone != null && !VendorContactPhone.IsValid()) { valErrors.Add("Vendor Phone", "Vendor Phone is not formatted correctly."); } return(valErrors.Count == 0); }
public void Save(string userID) { try { Dictionary <string, string> valErrors = new Dictionary <string, string>(); if (!Validate(out valErrors)) { throw new RequisitionNotValidException("Capital Request Bid is not valid", valErrors); } Enums.HistoryType ht; CapitalRequestBid originalBid = null; using (PurchasingContext context = ContextHelper.GetDBContext()) { CapitalRequestBidData data = null; if (BidID > 0) { ht = Enums.HistoryType.UPDATE; data = context.CapitalRequestBidDatas.FirstOrDefault(b => b.bid_id == BidID); originalBid = new CapitalRequestBid(data); } else { ht = Enums.HistoryType.ADD; data = new CapitalRequestBidData(); } data.capital_request_id = CapitalRequestID; if (VendorID > 0) { data.vendor_id = VendorID; data.vendor_name = null; } else { data.vendor_id = null; data.vendor_name = VendorName; } if (String.IsNullOrWhiteSpace(VendorContactName)) { data.vendor_contact_name = null; } else { data.vendor_contact_name = VendorContactName; } if (VendorContactPhone == null || String.IsNullOrWhiteSpace(VendorContactPhone.Number)) { data.vendor_contact_phone = null; } else { data.vendor_contact_phone = VendorContactPhone.ToArenaFormat(); } if (String.IsNullOrWhiteSpace(VendorContactEmail)) { data.vendor_contact_email = null; } else { data.vendor_contact_email = VendorContactEmail; } data.quote_blob_id = QuoteBlobID; data.bid_amount = BidAmount; data.active = Active; data.organization_id = 1; data.modified_by = userID; data.date_modified = DateTime.Now; if (BidID == 0) { data.created_by = userID; data.date_created = DateTime.Now; context.CapitalRequestBidDatas.InsertOnSubmit(data); } context.SubmitChanges(); Load(data); SaveHistory(ht, originalBid, userID); } } catch (Exception ex) { throw new RequisitionException("An error occurred while saving a bid.", ex); } }