Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 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);
 }
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
 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);
 }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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");
        }
Exemplo n.º 10
0
 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);
 }
Exemplo n.º 11
0
 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);
 }
Exemplo n.º 12
0
 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);
 }
Exemplo n.º 13
0
 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);
 }
Exemplo n.º 14
0
 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);
 }