public void SameAdressHandlerForCost(Cost cost, Quote quote) { if (!cost.IsSameAddress) return; cost.Address = quote.Address; cost.Company = quote.Company; cost.State = quote.State; cost.Postcode = quote.Postcode; }
public void Failed_WhenCurrentStatus_IS_WPReview_NextStatus_IS_QPIssues() { var quote = new Quote { StatusId = (int)QuoteStatusTypes.WPReview, }; Assert.AreEqual(_quoteService.Object.NextStatus(quote, false), QuoteStatusTypes.QPIssues); }
public Task SendCostsToWp(Quote quote, string url) { var toList = new List<string>(); var templatePath = AppDomain.CurrentDomain.BaseDirectory + _settings.QuoteCostsEmailPath; var rootPath = AppDomain.CurrentDomain.BaseDirectory + _settings.CostUploadPath + @"/" + quote.Id; var email = _emailFactory.GetNewEmail(); toList.Add(_settings.WPEmail); email.To.AddRange(toList); email.Subject = string.Format("Cost estimations for Quote {0}: {1}",quote.Id,quote.Company); var tokens = new Dictionary<string, string> { {"@quoteId", quote.Id.ToString(CultureInfo.InvariantCulture)}, {"@quoteType", quote.BusinessType.Type}, {"@company", quote.Company}, {"@pw",quote.TotalPW==null?"N/A":quote.TotalPW.Value.ToString("0.00")}, {"@pa", quote.TotalPA==null?"N/A":quote.TotalPA.Value.ToString("0.00")}, {"@address", string.Format("{0} {1} {2}", quote.Address.Unit, quote.Address.Number, quote.Address.Street)}, {"@suburb", quote.Address.Suburb}, {"@state", quote.State}, {"@postcode", quote.Postcode}, {"@url", url} }; //Add attachment foreach (var cost in quote.QuoteCost) { var fileName = Path.Combine(rootPath, cost.FileName); var attachment = new Attachment(fileName, MediaTypeNames.Application.Octet); ContentDisposition disposition = attachment.ContentDisposition; disposition.CreationDate = File.GetCreationTime(fileName); disposition.ModificationDate = File.GetLastWriteTime(fileName); disposition.ReadDate = File.GetLastAccessTime(fileName); disposition.FileName = Path.GetFileName(fileName); disposition.Size = new FileInfo(fileName).Length; disposition.DispositionType = DispositionTypeNames.Attachment; email.Attachments.Add(attachment); } return email.SendEmail(templatePath, tokens); }
public Task SendQuoteDocumentToQp(Quote quote, string url, bool pricePage) { var templatePath = AppDomain.CurrentDomain.BaseDirectory + _settings.QuoteDocumentEmailPath; var email = _emailFactory.GetNewEmail(); var toEmail = _emailHelper.GetEmailByInitial(quote.LeadPersonal.Initial); var rootPath = AppDomain.CurrentDomain.BaseDirectory + _settings.QuoteUploadPath + @"/" + quote.Id; email.To.Add(toEmail); email.Subject = string.Format(pricePage ? "Price Page for Quote {0}: {1}" : "Quote Document for Quote {0}: {1}", quote.Id, quote.Company); var tokens = new Dictionary<string, string> { {"@documentType",pricePage?"price page":"quote document"}, {"@quoteId", quote.Id.ToString(CultureInfo.InvariantCulture)}, {"@quoteType", quote.BusinessType.Type}, {"@company", quote.Company}, {"@address", string.Format("{0} {1} {2}", quote.Address.Unit, quote.Address.Number, quote.Address.Street)}, {"@suburb", quote.Address.Suburb}, {"@state", quote.State}, {"@postcode", quote.Postcode}, {"@pw",quote.TotalPW==null?"N/A":quote.TotalPW.Value.ToString("0.00")}, {"@pa", quote.TotalPA==null?"N/A":quote.TotalPA.Value.ToString("0.00")}, {"@url", url} }; var attachmentFiles = new List<string>(); if (!pricePage&&!string.IsNullOrEmpty(quote.FileName)) attachmentFiles.Add(quote.FileName); if (pricePage&&!string.IsNullOrEmpty(quote.PricePageName)) attachmentFiles.Add(quote.PricePageName); foreach (var file in attachmentFiles) { var fileName = Path.Combine(rootPath, file); var attachment = new Attachment(fileName, MediaTypeNames.Application.Octet); ContentDisposition disposition = attachment.ContentDisposition; disposition.CreationDate = File.GetCreationTime(fileName); disposition.ModificationDate = File.GetLastWriteTime(fileName); disposition.ReadDate = File.GetLastAccessTime(fileName); disposition.FileName = Path.GetFileName(fileName); disposition.Size = new FileInfo(fileName).Length; disposition.DispositionType = DispositionTypeNames.Attachment; email.Attachments.Add(attachment); } return email.SendEmail(templatePath, tokens); }
public Task SendPrintEmailToWp(Quote quote, string url) { var email = _emailFactory.GetNewEmail(); var templatePath = AppDomain.CurrentDomain.BaseDirectory + _settings.QuotePrintEmailPath; var rootPath = AppDomain.CurrentDomain.BaseDirectory + _settings.QuoteUploadPath + @"/" + quote.Id; var toList = new List<string> {_settings.WPEmail}; email.To.AddRange(toList); email.Subject = string.Format("Ready for print Quote {0}: {1}", quote.Id, quote.Company); var qp = _unitOfWork.GetRepository<QuadPhoneBook>().SingleOrDefault(l => l.Intial == quote.LeadPersonal.Initial); var tokens = new Dictionary<string, string> { {"@qpName",qp==null?quote.LeadPersonal.Initial:qp.Firstname+" "+qp.Lastname}, {"@quoteId", quote.Id.ToString(CultureInfo.InvariantCulture)}, {"@quoteType", quote.BusinessType.Type}, {"@company", quote.Company}, {"@pw",quote.TotalPW==null?"N/A":quote.TotalPW.Value.ToString("0.00")}, {"@pa", quote.TotalPA==null?"N/A":quote.TotalPA.Value.ToString("0.00")}, {"@address", string.Format("{0} {1} {2}", quote.Address.Unit, quote.Address.Number, quote.Address.Street)}, {"@suburb", quote.Address.Suburb}, {"@state", quote.State}, {"@postcode", quote.Postcode}, {"@url", url} }; //Add attachment var fileName = Path.Combine(rootPath, quote.FileName); var attachment = new Attachment(fileName, MediaTypeNames.Application.Octet); ContentDisposition disposition = attachment.ContentDisposition; disposition.CreationDate = File.GetCreationTime(fileName); disposition.ModificationDate = File.GetLastWriteTime(fileName); disposition.ReadDate = File.GetLastAccessTime(fileName); disposition.FileName = Path.GetFileName(fileName); disposition.Size = new FileInfo(fileName).Length; disposition.DispositionType = DispositionTypeNames.Attachment; email.Attachments.Add(attachment); return email.SendEmail(templatePath, tokens); }
public Task SendMergedQuote(Quote quote, string url, List<string> to) { var email = _emailFactory.GetNewEmail(); var templatePath = AppDomain.CurrentDomain.BaseDirectory + _settings.QuoteMergedEmailPath; var rootPath = AppDomain.CurrentDomain.BaseDirectory + _settings.QuoteUploadPath + @"/" + quote.Id; email.To.AddRange(to); email.Subject = string.Format("Please Review Quote {0}: {1}", quote.Id, quote.Company); var pa = quote.QuoteCost.Where(l => l.PricePa != null).Sum(l => l.PricePa); var pw = quote.QuoteCost.Where(l => l.ReturnPw != null).Sum(l => l.ReturnPw); var tokens = new Dictionary<string, string> { {"@quoteId", quote.Id.ToString(CultureInfo.InvariantCulture)}, {"@quoteType", quote.BusinessType.Type}, {"@company", quote.Company}, {"@pw",pa==null?"N/A":pw.Value.ToString("0.00")}, {"@pa", pw==null?"N/A":pa.Value.ToString("0.00")}, {"@address", string.Format("{0} {1} {2}", quote.Address.Unit, quote.Address.Number, quote.Address.Street)}, {"@suburb", quote.Address.Suburb}, {"@state", quote.State}, {"@postcode", quote.Postcode}, {"@url", url} }; //Add attachment var fileName = Path.Combine(rootPath, quote.FileName); var attachment = new Attachment(fileName, MediaTypeNames.Application.Octet); ContentDisposition disposition = attachment.ContentDisposition; disposition.CreationDate = File.GetCreationTime(fileName); disposition.ModificationDate = File.GetLastWriteTime(fileName); disposition.ReadDate = File.GetLastAccessTime(fileName); disposition.FileName = Path.GetFileName(fileName); disposition.Size = new FileInfo(fileName).Length; disposition.DispositionType = DispositionTypeNames.Attachment; email.Attachments.Add(attachment); return email.SendEmail(templatePath, tokens); }
public Task SendIssueAlert(Quote quote, string issueDetail, string url, List<string> to) { var templatePath = AppDomain.CurrentDomain.BaseDirectory + _settings.QuoteIssueAlertEmailPath; var email = _emailFactory.GetNewEmail(); email.To.AddRange(to); email.Subject = string.Format("Alert New Issue for Quote {0}: {1}", quote.Id, quote.Company); var tokens = new Dictionary<string, string> { {"@quoteId", quote.Id.ToString(CultureInfo.InvariantCulture)}, {"@quoteType", quote.BusinessType.Type}, {"@company", quote.Company}, {"@address", string.Format("{0} {1} {2}", quote.Address.Unit, quote.Address.Number, quote.Address.Street)}, {"@suburb", quote.Address.Suburb}, {"@state", quote.State}, {"@postcode", quote.Postcode}, {"@issueDetail", issueDetail}, {"@url", url} }; return email.SendEmail(templatePath, tokens); }
public void WhenQuoteContactMade_ContactCheckOverDueWillResetToFalse() { var model = new QuotePostModel { QuoteId = 1, Date = DateTime.Now }; var quote = new Quote { StatusId = 1, Id = 1 }; _quoteService.Setup(l => l.GetByKey(It.Is<int>(k => k == 1))).Returns(quote); _unitOfWork.Setup(l => l.Save()).Returns(1); var repo = new Mock<IRepository<QuoteQuestionResult>>(); _unitOfWork.Setup( l => l.GetRepository<QuoteQuestionResult>()) .Returns(repo.Object); _quoteService.Object.Contact(model); Assert.AreEqual(quote.ContactCheckOverDue, false); }
public void WhenCancelQuote_InsertToHistoryTableAndChangeStatusToCancel() { var quote = new Quote { StatusId = 1, Id = 1 }; QuoteHistory[] history = null; _quoteService.Setup(l => l.GetByKey(It.Is<int>(k => k == 1))).Returns(quote); _unitOfWork.Setup(l => l.Save()).Returns(1); _unitOfWork.Setup(l => l.GetRepository<QuoteHistory>(). Add(It.IsAny<QuoteHistory>())).Callback<QuoteHistory[]>(p => history = p); _quoteService.Object.CancelQuote(1, "chang"); var h=history[0]; Assert.AreEqual(h.QuoteId, quote.Id); Assert.AreEqual(h.ToStatusId, (int)QuoteStatusTypes.Cancel); Assert.AreEqual(h.User, "chang"); Assert.AreEqual(h.FromStatusId, 1); Assert.AreEqual(h.Description, "Quote cancelled"); }
public void Success_WhenCurrentStatus_Is_WPReview_And_LeadPerson_Is_Not_BD_NextStatus_Is_QPReview() { var quote = new Quote { StatusId = (int) QuoteStatusTypes.WPReview }; _unitOfWork.Setup( l => l.GetRepository<QuadPhoneBook>().Any(It.IsAny<Expression<Func<QuadPhoneBook, bool>>>())) .Returns(false); Assert.AreEqual(_quoteService.Object.NextStatus(quote, true), QuoteStatusTypes.QPReview); }
public void Success_WhenCurrentStatus_Is_WPIssues_And_Issue_NextStatus_Not_Exists_NextStatus_Is_Null() { var quote = new Quote { StatusId = (int)QuoteStatusTypes.WPIssues, QuoteIssues = new List<QuoteIssue> { new QuoteIssue { Id = 2, NextStatusId = (int) QuoteStatusTypes.PresentToClient } } }; Assert.AreEqual(_quoteService.Object.NextStatus(quote, true, 1), null); }
public void Success_WhenCurrentStatus_Is_Print_And_ToCurrentAnswers_Not_Exist_NextStatus_Is_PresentToClient() { var quote = new Quote { StatusId = (int) QuoteStatusTypes.Print, QuestionResults = new List<QuoteQuestionResult>() }; Assert.AreEqual(_quoteService.Object.NextStatus(quote, true), QuoteStatusTypes.PresentToClient); }
public void Success_WhenCurrentStatus_Is_Print_And_ToCurrentAnswers_Exist_NextStatus_Is_Current_And_WasCurrentFlag_Is_true() { var quote = new Quote { StatusId = (int) QuoteStatusTypes.Print, QuestionResults = new List<QuoteQuestionResult> { new QuoteQuestionResult { Question = new QuoteQuestion { Type = QuoteQuestionType.ToCurrent } } } }; Assert.AreEqual(_quoteService.Object.NextStatus(quote, true), QuoteStatusTypes.Current); Assert.AreEqual(quote.WasCurrent, true); }
private static void TestInit(SiteResourceEntities context) { var address = new Address { Suburb = "wellington", Street = "Shoreline", Number = "12", Unit = "13" }; var quote = new Quote { CreatedDate = DateTime.Today, LastUpdateDate = DateTime.Today, BusinessTypeId = 1, Firstname = "chang", Lastname = "liu", Position = "manager", Title = "Mr", Company = "NZ test company", LeadPersonalId = 1, StatusId = 1, Phone = "231414124", Postcode = "0112", State = "NZ", Address = address }; context.Quotes.AddOrUpdate(l=>l.BusinessTypeId,quote); }