コード例 #1
0
        public async Task <IActionResult> AcceptQuoteItems(long?id, string role, string quoteNumber, [FromBody] List <QuoteItem> quoteItems)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var quote = await _context.Quote.SingleOrDefaultAsync(m => m.QuoteNumber == quoteNumber);

            if (quote == null)
            {
                return(NotFound());
            }
            var nextStatus = StaticItems.GetNextStatus(quote.QuoteStatusLevelID, quote.QuoteStatusResultID);

            quote.QuoteStatusLevelID    = nextStatus.Item1;
            quote.QuoteStatusResultID   = nextStatus.Item2;
            quote.WinLossDateTime       = DateTime.Now;
            quote.WinLossUserID         = (int)id.Value;
            _context.Entry(quote).State = EntityState.Modified;

            foreach (var quoteItem in quoteItems)
            {
                _context.Entry(quoteItem).State = EntityState.Modified;

                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!QuoteItemExists(quoteItem.QuoteItemID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }
            return(Ok(new { success = true }));// CreatedAtAction("GetQuoteItem", new { id = quoteItem.QuoteItemID }, quoteItem);
        }
コード例 #2
0
        public async Task <IActionResult> PostQuoteItems(long?id, string role, string quoteNumber, [FromBody] List <QuoteItem> quoteItems)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var quote = await _context.Quote.SingleOrDefaultAsync(m => m.QuoteNumber == quoteNumber);

            if (quote == null)
            {
                return(NotFound());
            }
            var nextStatus = StaticItems.GetNextStatus(quote.QuoteStatusLevelID, quote.QuoteStatusResultID);

            quote.QuoteStatusLevelID  = nextStatus.Item1;
            quote.QuoteStatusResultID = nextStatus.Item2;

            switch (role)
            {
            case "RSM":
                if (quote.QuoteStatusResultID == 14)
                {
                    quote.WinLossUserID   = (int)id.Value;
                    quote.WinLossDateTime = DateTime.Now;
                }
                break;

            case "PM":
                quote.PMActualApprovedByUserID = (int)id.Value;
                quote.PMApprovedByUserID       = (int)id.Value;
                quote.PMApprovedDateTime       = DateTime.Now;

                break;

            case "POE":
                quote.PEActualApprovedByUserId = (int)id.Value;
                quote.PEApprovedByUserId       = (int)id.Value;
                quote.PEApprovedDateTime       = DateTime.Now;
                break;

            case "VP FINANCE":
                quote.VPFinanceActualApprovedByUserID = (int)id.Value;
                quote.VPFinanceApprovedByUserID       = (int)id.Value;
                quote.VPFinanceApprovedDateTime       = DateTime.Now;
                break;
            }

            _context.Entry(quote).State = EntityState.Modified;

            foreach (var quoteItem in quoteItems)
            {
                if (role == "PM")
                {
                    quoteItem.WinNetPrice = quoteItem.PMApprovedPrice;
                    quoteItem.WinQuantity = quoteItem.RequestedQuantity;
                }
                _context.Entry(quoteItem).State = EntityState.Modified;

                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!QuoteItemExists(quoteItem.QuoteItemID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }

            //API CALL ToDo
            if (role == "PM")
            {
                string pmApprovaluri = "https://wyunsq1ccf.execute-api.us-east-1.amazonaws.com/respond/approve?taskToken=" + quote.Token + "&quoteid=" + quote.QuoteID;
                string output        = DoAPICallToApprove(pmApprovaluri);
            }

            return(Ok(new { success = true }));// CreatedAtAction("GetQuoteItem", new { id = quoteItem.QuoteItemID }, quoteItem);
        }