예제 #1
0
        public IActionResult CheckOut([FromBody] CheckOutRequest request, [FromRoute] int id)
        {
            try
            {
                var facade   = new CheckInFacade();
                var response = facade.CheckOut(request, id);

                switch (response.Status)
                {
                case HttpStatusCode.OK:
                    return(Ok(response));

                case HttpStatusCode.BadRequest:
                    return(BadRequest(BuildBadRequestMessage(response)));

                case HttpStatusCode.NotFound:
                    return(NotFound());

                case HttpStatusCode.InternalServerError:
                    return(StatusCode(StatusCodes.Status500InternalServerError));
                }
                s_logger.Fatal("This code should be unreachable, unknown result has occured.");
            }
            catch (Exception ex)
            {
                s_logger.Error(ex, "Unable to check out.");
            }
            return(StatusCode(StatusCodes.Status500InternalServerError));
        }
예제 #2
0
		public async Task<CheckOutResponse> CheckOutAsync (CheckOutRequest request)
		{
			await Task.Delay (2000);

			return new CheckOutResponse {
				Succeeded = true,
				Result = true
			};
		}
예제 #3
0
        public void CheckOutForced()
        {
            Unit unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false,
                Name      = AlphaNumericStringGenerator.GetString(10),
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Unit.Add(unit);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                UnitID   = unit.UnitId,
                Nickname = AlphaNumericStringGenerator.GetString(10),
                SID      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.CheckInID > 0);

            CheckOutRequest coRequest = new CheckOutRequest()
            {
                ForcedCheckout = true
            };

            CheckOutResponse coResponse = facade.CheckOut(coRequest, response.CheckInID);

            Assert.AreEqual(HttpStatusCode.OK, coResponse.Status);
            Assert.IsTrue(coResponse.Result);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkOut = context.Checkinhistory.FirstOrDefault(co => co.CheckInId == response.CheckInID);

                Assert.IsNotNull(checkOut);

                var baseTime = DateTime.Now.AddMinutes(-1);
                var addTime  = checkOut.CheckoutTime;
                var timeDiff = baseTime.CompareTo(addTime);
                Assert.IsTrue(timeDiff == -1);

                Assert.AreEqual(coRequest.ForcedCheckout, checkOut.ForcedCheckout);
            }
        }
예제 #4
0
        public async Task <IActionResult> Checkout(CheckOutRequest request)
        {
            List <Cart> cartRequest = SessionHelper.GetObjectFromJson <List <Cart> >(HttpContext.Session, "cart");
            //Cart on Top

            //Define Function Checkout nè
            var transaction = new Transaction()
            {
                AdminId         = 1,
                ClientId        = 1,
                ShippingFeeId   = 1,
                AddressDistrict = request.AddressDistrict,
                AddressStreet   = request.AddressStreet,
                AddressNumber   = request.AddressNumber,
                Message         = request.Message,
                PaymentMethod   = request.PaymentMethod,
                Status          = 0,
                Amount          = cartRequest.Sum(item => item.Product.Price * item.Quantity),
                CreatedDate     = DateTime.Now,
            };

            _context.Transactions.Add(transaction);
            await _context.SaveChangesAsync();

            var order = new Order()
            {
                Amount   = cartRequest.Sum(item => item.Product.Price * item.Quantity),
                Quantity = cartRequest.Count,

                CreatedDate   = DateTime.Now,
                Status        = 1,
                Discount      = 1,
                TransactionId = transaction.Id,
            };

            _context.Orders.Add(order);
            await _context.SaveChangesAsync();

            foreach (var item in cartRequest)
            {
                var orderDetail = new OrderDetail
                {
                    ProductId = item.Product.Id,
                    Quantity  = item.Quantity,
                    OrderId   = order.Id,
                };
                _context.OrderDetails.Add(orderDetail);
                await _context.SaveChangesAsync();
            }
            HttpContext.Session.Remove("cart");
            TempData["result"] = "Thanks for buying, we are going to check your order ! ";
            return(RedirectToAction("Index"));
        }
예제 #5
0
        public async Task <ApiResponse <CheckOutPIXResponse> > GeneratePIXCheckout(CheckOutRequest checkOutRequest, bool transparent = false)
        {
            var action = "checkout";

            if (transparent)
            {
                action = "checkout/transparent";
            }

            var response = await _restClient.Post <CheckOutPIXResponse>(action, checkOutRequest);

            return(response);
        }
예제 #6
0
        public void CheckOutNoCheckInItem()
        {
            CheckInFacade facade = new CheckInFacade();

            CheckOutRequest request = new CheckOutRequest()
            {
                ForcedCheckout = false
            };

            CheckOutResponse coResponse = facade.CheckOut(request, -1);

            Assert.AreEqual(HttpStatusCode.NotFound, coResponse.Status);
        }
예제 #7
0
    protected void btnCheckOut_Click(object sender, EventArgs e)
    {
        try
        {
            ScentaurusEntities2 context = new ScentaurusEntities2();

            Config checkOutLimit = context.Configs.Where(x => x.KeyName.ToLower() == "checkoutlimit").FirstOrDefault();

            int userID = Utils.GetUserData().ID;
            IQueryable <SalesComissionNthLevel> com = context.SalesComissionNthLevels.Where(x => x.BeneficierUserID == userID && x.IsCheckOut == false);
            //decimal? amount = com.Sum(x => x.ComissionAmount);

            decimal?amount = context.Ledgers.OrderByDescending(x => x.ID).FirstOrDefault(x => x.UserID == userID).Balance;

            if (amount >= decimal.Parse(checkOutLimit.KeyValue))
            {
                foreach (SalesComissionNthLevel c in com)
                {
                    c.Status = "Pending";
                }

                context.SaveChanges();

                CheckOutRequest coRequest = new CheckOutRequest
                {
                    UserID      = userID,
                    TimeStamp   = DateTime.Now,
                    Status      = "Pending",
                    Amount      = amount.HasValue ? amount.Value : 0,
                    CreatedBy   = Utils.GetUserName(),
                    Description = "Checking out request of amount " + amount.ToString()
                };

                context.CheckOutRequests.Add(coRequest);
                context.SaveChanges();
                LoadCheckOutButton();
                Utils.ShowAlert(this, "A Check out request generated against your amount successfully. Please collect your amount after it gets approved.");
            }
            else
            {
                Utils.ShowAlert(this, "Error", "Cannot check out request until you have atleast RS:" + checkOutLimit.KeyValue + " in your account.", false);
            }
        }
        catch (Exception ex)
        { Utils.ShowAlert(this, "Error", ex.Message, false); }
    }
예제 #8
0
        public async Task <ApiResponse <CheckOutResponse> > GenerateCheckout(CheckOutRequest checkOutRequest, bool transparent = false)
        {
            if (checkOutRequest.PaymentMethod == "PIX")
            {
                throw new Exception("Utilize o metodo GeneratePIXCheckout para pagamentos PIX");
            }

            var action = "checkout";

            if (transparent)
            {
                action = "checkout/transparent";
            }

            var response = await _restClient.Post <CheckOutResponse>(action, checkOutRequest);

            return(response);
        }
        /// <summary>
        /// Checks a check in item out of the database
        /// </summary>
        /// <param name="id">CheckInID of the check in item to be checked out</param>
        /// <returns>A boolean indicating success or failure</returns>
        public bool CheckOut(CheckOutRequest request, int id)
        {
            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkOut = context.Checkinhistory.FirstOrDefault(co => co.CheckInId == id);

                if (checkOut == null)
                {
                    return(false);
                }

                checkOut.CheckoutTime   = DateTime.Now;
                checkOut.ForcedCheckout = request.ForcedCheckout;

                context.SaveChanges();
            }
            return(true);
        }
        /// <summary>
        /// This method is used to check a check in item out of the helpdesk system
        /// </summary>
        /// <param name="id">Specified CheckInID</param>
        /// <returns>A response indicating success or failure</returns>
        public CheckOutResponse CheckOut(CheckOutRequest request, int id)
        {
            CheckOutResponse response = new CheckOutResponse();

            try
            {
                CheckInDataLayer dataLayer = new CheckInDataLayer();

                bool result = dataLayer.CheckOut(request, id);

                if (result == false)
                {
                    throw new NotFoundException("Unable to find check in item!");
                }

                QueueDataLayer queueDataLayer = new QueueDataLayer();
                var            queueItems     = queueDataLayer.GetQueueItemsByCheckIn(id);
                UpdateQueueItemStatusRequest removeRequest = new UpdateQueueItemStatusRequest()
                {
                    TimeRemoved = DateTime.Now
                };

                foreach (var item in queueItems)
                {
                    queueDataLayer.UpdateQueueItemStatus(item.ItemId, removeRequest);
                }

                response.Result = result;
                response.Status = HttpStatusCode.OK;
            }
            catch (NotFoundException ex)
            {
                s_logger.Warn(ex, "Unable to find check out item");
                response.Status = HttpStatusCode.NotFound;
                response.StatusMessages.Add(new StatusMessage(HttpStatusCode.NotFound, "Unable to find check out item"));
            }
            catch (Exception ex)
            {
                s_logger.Error(ex, "Unable to check out");
                response.Status = HttpStatusCode.InternalServerError;
                response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to check out"));
            }
            return(response);
        }
예제 #11
0
        public async Task <ApiResult <bool> > Checkout(CheckOutRequest request)
        {
            var transaction = new Transaction()
            {
                AdminId       = 1,
                ClientId      = 1,
                ShippingFeeId = 1,
                Status        = 0,
                CreatedDate   = DateTime.Now,
            };
            var order = new Order()
            {
                CreatedDate   = DateTime.Now,
                Status        = 0,
                Discount      = 0,
                TransactionId = transaction.Id,
            };

            return(new ApiSuccessResult <bool>());
        }
예제 #12
0
파일: Program.cs 프로젝트: aakashptl/WSDL
        static void Main(string[] args)
        {
            /************************************Login***************************************************/
            WsLoginClient bOSLogin2 = new WsLoginClient();

            UserLogin2Request loginRequest = new UserLogin2Request
            {
                AWorkstationAK = "VTA.WKS19",
                AUserName      = "******",
                APassword      = "******"
            };

            UserLogin2Response response = bOSLogin2.UserLogin2(loginRequest);

            string login_response = response.@return;

            Console.WriteLine(login_response);


            goto Event;
            //goto Performance;
            //goto Save;
            //goto B2B;
            //goto Checkout;
            //goto Close;
            //goto Print;
            //goto Logout;

            /************************************Event***************************************************/

Event:

            WsAPIEventClient bosEvent = new WsAPIEventClient();

            FindAllEventsRequest  eventsRequest  = new FindAllEventsRequest();
            FindAllEventsResponse eventsResponse = bosEvent.FindAllEvents(eventsRequest);

            FINDALLEVENTSRESP fINDALLEVENTSRESP = eventsResponse.@return;

            string event_response = fINDALLEVENTSRESP.EVENTLIST.ToString();



            /************************************Performance***************************************************/

Performance:

            WsAPIPerformanceClient wsAPIPerformanceClient = new WsAPIPerformanceClient();

            SEARCHPERFORMANCEREQ sEARCHPERFORMANCEREQ = new SEARCHPERFORMANCEREQ();

            sEARCHPERFORMANCEREQ.EVENTAK  = "VTA.EVN3";
            sEARCHPERFORMANCEREQ.SELLABLE = true;
            SearchPerformanceRequest searchPerformanceRequest = new SearchPerformanceRequest(sEARCHPERFORMANCEREQ);

            SearchPerformanceResponse searchPerformanceResponse = wsAPIPerformanceClient.SearchPerformance(searchPerformanceRequest);

            SEARCHPERFORMANCERESP sEARCHPERFORMANCERESP = searchPerformanceResponse.@return;

            string performance_response = sEARCHPERFORMANCERESP.PERFORMANCELIST.ToString();


            /************************************Save account***************************************************/

Save:
            WsAPIAccountClient wsAPIAccountClient = new WsAPIAccountClient();


            Accounts.FIELDLISTFIELD[] fIELDLISTFIELDs = new Accounts.FIELDLISTFIELD[3];

            Accounts.FIELDLISTFIELD fIELDLISTFIELD1 = new Accounts.FIELDLISTFIELD();
            fIELDLISTFIELD1.OBJTYPE = 1;
            fIELDLISTFIELD1.VALUE   = "ironman";//firstname

            Accounts.FIELDLISTFIELD fIELDLISTFIELD2 = new Accounts.FIELDLISTFIELD();
            fIELDLISTFIELD2.OBJTYPE = 548;
            fIELDLISTFIELD2.VALUE   = "tony1234";//firstname


            Accounts.FIELDLISTFIELD fIELDLISTFIELD3 = new Accounts.FIELDLISTFIELD();
            fIELDLISTFIELD3.OBJTYPE = 549;
            fIELDLISTFIELD3.VALUE   = "avengers";//firstname



            fIELDLISTFIELDs[0] = fIELDLISTFIELD1;
            fIELDLISTFIELDs[1] = fIELDLISTFIELD2;
            fIELDLISTFIELDs[2] = fIELDLISTFIELD3;

            SAVEACCOUNTREQ sAVEACCOUNTREQ = new SAVEACCOUNTREQ
            {
                FIELDLIST     = fIELDLISTFIELDs,
                DMGCATEGORYAK = "VTA.DMGCAT29"
            };
            SaveAccountRequest saveAccountRequest = new SaveAccountRequest(sAVEACCOUNTREQ);

            SaveAccountResponse saveAccountResponse = wsAPIAccountClient.SaveAccount(saveAccountRequest);

            SAVEACCOUNTRESP sAVEACCOUNTRESP = saveAccountResponse.@return;

            string save_response = sAVEACCOUNTRESP.BASICINFO.ACCOUNTAK;

            /************************************B2B Login***************************************************/


B2B:
            B2BAccountLogInRequest b2BAccountLogInRequest = new B2BAccountLogInRequest
            {
                ADmgCatCode = "Guests",
                AUsername   = "******",
                APsw        = "Iambatma"
            };

            B2BAccountLogInResponse b2BAccountLogInResponse = wsAPIAccountClient.B2BAccountLogIn(b2BAccountLogInRequest);

            /************************************Checkout***************************************************/

Checkout:
            WsAPIOrderClient wsAPIOrderClient = new WsAPIOrderClient();


            CHECKOUTREQ cHECKOUTREQ = new CHECKOUTREQ();


            ITEMLISTITEM[] iTEMLISTITEMs = new ITEMLISTITEM[1];

            ITEMLISTITEMPERFORMANCE[] iTEMLISTITEMPERFORMANCEs = new ITEMLISTITEMPERFORMANCE[1];

            iTEMLISTITEMPERFORMANCEs[1].AK = "VTA.EVN4.PRF100";

            iTEMLISTITEMs[1].AK              = "VTA.EVN1.MCC28";
            iTEMLISTITEMs[1].QTY             = "1";
            iTEMLISTITEMs[1].PERFORMANCELIST = iTEMLISTITEMPERFORMANCEs;


            Orders.ACCOUNTSAVEBASE aCCOUNTSAVEBASE = new Orders.ACCOUNTSAVEBASE
            {
                AK = "99901920000019"
            };

            ORDERSTATUS oRDERSTATUS = new ORDERSTATUS
            {
                APPROVED  = true,
                PAID      = true,
                ENCODED   = true,
                VALIDATED = true,
                COMPLETED = true
            };


            RESERVATIONBASE rESERVATIONBASE = new RESERVATIONBASE
            {
                RESERVATIONOWNER = aCCOUNTSAVEBASE
            };

            cHECKOUTREQ.SHOPCART = new SHOPCART
            {
                ITEMLIST    = iTEMLISTITEMs,
                RESERVATION = rESERVATIONBASE,
                FLAG        = oRDERSTATUS
            };


            CheckOutRequest checkOutRequest = new CheckOutRequest(cHECKOUTREQ);

            CheckOutResponse checkOutResponse = wsAPIOrderClient.CheckOut(checkOutRequest);

            CHECKOUTRESP cHECKOUTRESP = checkOutResponse.@return;

            string checkout_response_sale_ak    = cHECKOUTRESP.SALE.AK;
            float  checkout_response_sale_gross = cHECKOUTRESP.SALE.TOTAL.GROSS;



            /************************************Close_order***************************************************/


Close:
            Orders.PAYMENTLISTBASEPAYMENTINFO[] pAYMENTLISTBASEPAYMENTINFOs = new Orders.PAYMENTLISTBASEPAYMENTINFO[1];

            pAYMENTLISTBASEPAYMENTINFOs[1].CODE   = "";
            pAYMENTLISTBASEPAYMENTINFOs[1].AMOUNT = checkout_response_sale_gross;



            CLOSEORDERREQ cLOSEORDERREQ = new CLOSEORDERREQ {
                AK = checkout_response_sale_ak,
                PAYMENTINFOLIST = pAYMENTLISTBASEPAYMENTINFOs,
            };

            CloseOrderRequest  closeOrderRequest  = new CloseOrderRequest(cLOSEORDERREQ);
            CloseOrderResponse closeOrderResponse = wsAPIOrderClient.CloseOrder(closeOrderRequest);

            CLOSEORDERRESP cLOSEORDERRESP = closeOrderResponse.@return;

            string close_order_sale_ak = cLOSEORDERRESP.SALE.AK;


            /************************************Print Ticket***************************************************/

Print:
            WsAPITicketClient wsAPITicketClient = new WsAPITicketClient();



            PrintPdfTicketRequest printPdfTicketRequest = new PrintPdfTicketRequest {
                ASaleAk = "VTA.WKS19.200527.SAL1" //VTA.WKS19.200527.SAL1
            };

            PrintPdfTicketResponse printPdfTicketResponse = wsAPITicketClient.PrintPdfTicket(printPdfTicketRequest);

            PRINTPDFTICKETRESP pRINTPDFTICKETRESP = printPdfTicketResponse.@return;

            byte[] pdf_string = pRINTPDFTICKETRESP.PDF;


            /************************************Logout***************************************************/

Logout:
            UserLogoutRequest userLogoutRequest = new UserLogoutRequest();

            UserLogoutResponse userLogoutResponse = bOSLogin2.UserLogout(userLogoutRequest);
        }
        public async Task <RequestResult> CheckOut(CheckOutRequest checkOutRequest)
        {
            try
            {
                //Kiểm tra CustomerId có tồn tại hay không
                var customer = _context.Customers.Find(checkOutRequest.CustomerId);
                //Có tồn tại
                if (customer != null)
                {
                    //Tìm CartID dựa vào CustomerId
                    var cart = _context.Carts.SingleOrDefault(x => x.CustomerId == checkOutRequest.CustomerId);
                    if (cart != null)
                    {
                        //Tìm danh sách sản phẩm hiện có trong cart
                        var cartDetails = _context.CartDetails.Where(x => x.CartId == cart.Id).ToList();
                        if (cartDetails.Count() > 0) //trong cart có hàng
                        {
                            //Tạo order mới
                            DateTime date         = DateTime.Now;
                            string   newOrderCode = date.ToString("yyyyMMddHHmmssfff") + "_" + checkOutRequest.CustomerId.ToString();
                            Orders   newOrder     = new Orders
                            {
                                Id          = 0,
                                OrderCode   = newOrderCode,
                                CustomerId  = customer.Id,
                                ShipName    = checkOutRequest.Name,
                                ShipPhone   = checkOutRequest.Phone,
                                ShipAddress = checkOutRequest.ShippingAddress,
                                ShipNote    = checkOutRequest.Note,
                                OrderDate   = date,
                                Status      = 1
                            };
                            _context.Orders.Add(newOrder);
                            _context.SaveChanges();
                            var order = _context.Orders.SingleOrDefault(x => x.CustomerId == checkOutRequest.CustomerId && x.OrderCode == newOrderCode);
                            if (order != null)
                            {
                                var products      = _context.Products.ToList();
                                var manufacturers = _context.Manufacturers.ToList();
                                var units         = _context.Units.ToList();

                                var list = from product in products
                                           join manufacturer in manufacturers on product.ManufacturerId equals manufacturer.Id
                                           join unit in units on product.UnitId equals unit.Id
                                           where product.IsActive == 1
                                           select new ProductResponse
                                {
                                    Id               = product.Id,
                                    Name             = product.Name,
                                    OriginalPrice    = product.OriginalPrice,
                                    SellingPrice     = product.SellingPrice,
                                    Description      = product.Description,
                                    MadeIn           = product.MadeIn,
                                    ManufacturerName = manufacturer.Name,
                                    ImageURL         = product.ImageURL,
                                    UnitName         = unit.Name
                                };

                                foreach (var item in cartDetails)
                                {
                                    var         temp        = list.FirstOrDefault(x => x.Id == item.ProductId);
                                    OrderDetail orderDetail = new OrderDetail
                                    {
                                        Id               = 0,
                                        OrderId          = order.Id,
                                        ProductId        = temp.Id,
                                        ProductName      = temp.Name,
                                        OriginalPrice    = temp.OriginalPrice,
                                        SellingPrice     = temp.SellingPrice,
                                        Description      = temp.Description,
                                        UnitName         = temp.UnitName,
                                        ManufacturerName = temp.ManufacturerName,
                                        MadeIn           = temp.MadeIn,
                                        ImageURL         = temp.ImageURL,
                                        Quantity         = item.Quantity
                                    };
                                    _context.OrderDetails.Add(orderDetail);
                                    _context.CartDetails.Remove(item);
                                    _context.SaveChanges();
                                }


                                return(new RequestResult
                                {
                                    StatusCode = DataAccess.Models.Enum.StatusCode.Success,
                                    Content = "Success"
                                });
                            }
                            else
                            {
                                return(new RequestResult
                                {
                                    StatusCode = DataAccess.Models.Enum.StatusCode.Failed,
                                    Content = "Can not create order."
                                });
                            }
                        }
                        else
                        {
                            return(new RequestResult
                            {
                                StatusCode = DataAccess.Models.Enum.StatusCode.Failed,
                                Content = "Can not find cart details."
                            });
                        }
                    }
                }
            }
            catch
            {
                return(new RequestResult
                {
                    StatusCode = DataAccess.Models.Enum.StatusCode.Failed,
                    Content = "Failed"
                });
            }
            return(new RequestResult
            {
                StatusCode = DataAccess.Models.Enum.StatusCode.Failed,
                Content = "Failed"
            });
        }
예제 #14
0
        public void CheckOutWithQueueItems()
        {
            Unit unit = new Unit()
            {
                Code      = AlphaNumericStringGenerator.GetString(8),
                IsDeleted = false,
                Name      = AlphaNumericStringGenerator.GetString(10),
            };

            Topic topic = new Topic()
            {
                Name      = AlphaNumericStringGenerator.GetString(10),
                IsDeleted = false
            };

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Unit.Add(unit);
                topic.UnitId = unit.UnitId;
                context.Topic.Add(topic);
                context.SaveChanges();
            }

            CheckInRequest request = new CheckInRequest()
            {
                UnitID   = unit.UnitId,
                Nickname = AlphaNumericStringGenerator.GetString(10),
                SID      = AlphaNumericStringGenerator.GetStudentIDString()
            };

            CheckInFacade facade = new CheckInFacade();

            CheckInResponse response = facade.CheckIn(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.CheckInID > 0);

            Queueitem queueitem = new Queueitem()
            {
                StudentId   = response.StudentID,
                TopicId     = topic.TopicId,
                Description = "Check In Unit Test",
                TimeAdded   = DateTime.Now
            };



            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                context.Queueitem.Add(queueitem);

                Checkinqueueitem checkinqueueitem = new Checkinqueueitem()
                {
                    CheckInId   = response.CheckInID,
                    QueueItemId = queueitem.ItemId
                };
                context.Checkinqueueitem.Add(checkinqueueitem);

                context.SaveChanges();
            }

            CheckOutRequest coRequest = new CheckOutRequest()
            {
                ForcedCheckout = false
            };

            CheckOutResponse coResponse = facade.CheckOut(coRequest, response.CheckInID);

            Assert.AreEqual(HttpStatusCode.OK, coResponse.Status);
            Assert.IsTrue(coResponse.Result);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Checkinhistory checkOut = context.Checkinhistory.FirstOrDefault(co => co.CheckInId == response.CheckInID);
                Queueitem      item     = context.Queueitem.FirstOrDefault(qi => qi.ItemId == queueitem.ItemId);

                Assert.IsNotNull(checkOut);

                var baseTime = DateTime.Now.AddMinutes(-1);
                var addTime  = checkOut.CheckoutTime;
                var timeDiff = baseTime.CompareTo(addTime);
                Assert.IsTrue(timeDiff == -1);

                Assert.AreEqual(coRequest.ForcedCheckout, checkOut.ForcedCheckout);

                Assert.IsNotNull(item);

                var baseQueueTime   = DateTime.Now.AddMinutes(-1);
                var removeQueueTime = item.TimeRemoved;
                var queueTimeDiff   = baseQueueTime.CompareTo(removeQueueTime);
                Assert.IsTrue(queueTimeDiff == -1);
            }
        }
예제 #15
0
        static void Main(string[] args)
        {
            Console.WriteLine("testing");

            Login.WsLoginClient LoginClient = new Login.WsLoginClient();

            WSDLPublish.WSDLPublishClient wSDLPublishClient = new WSDLPublish.WSDLPublishClient();

            WSDLPublish.GetWSDLForPortTypeRequest getWSDLForPortTypeRequest = new WSDLPublish.GetWSDLForPortTypeRequest();

            WSDLPublish.GetWSDLForPortTypeResponse getWSDLForPortTypeResponse = new WSDLPublish.GetWSDLForPortTypeResponse();

            Console.WriteLine(getWSDLForPortTypeResponse.@return);



            BOSLogin2.WsLoginClient bOSLogin2 = new BOSLogin2.WsLoginClient();

            //BOSLogin2.UserLoginRequest loginRequest = new BOSLogin2.UserLoginRequest
            //{

            //    AUserName = "******",
            //    APassword = "******"
            //};

            BOSLogin2.UserLogin2Request loginRequest = new BOSLogin2.UserLogin2Request
            {
                AWorkstationAK = "VTA.WKS19",
                AUserName      = "******",
                APassword      = "******"
            };

            //BOSLogin2.UserLoginResponse response = bOSLogin2.UserLogin(loginRequest);

            BOSLogin2.UserLogin2Response response = bOSLogin2.UserLogin2(loginRequest);

            string a = response.@return;

            Console.WriteLine(a);

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(a);

            string json = JsonConvert.SerializeXmlNode(doc);

            ExecuteLogin();
            //  Execute();

            // ExecutePerformance();


            WsAPIAccountClient wsAPIAccountClient = new WsAPIAccountClient();



            List <FIELDLISTFIELD> fIELDLISTFIELD = new List <FIELDLISTFIELD>();

            FIELDLISTFIELD[] fIELDLISTFIELDs = new FIELDLISTFIELD[3];

            FIELDLISTFIELD fIELDLISTFIELD1 = new FIELDLISTFIELD();

            fIELDLISTFIELD1.OBJTYPE = 1;
            fIELDLISTFIELD1.VALUE   = "ironman";//firstname

            FIELDLISTFIELD fIELDLISTFIELD2 = new FIELDLISTFIELD();

            fIELDLISTFIELD2.OBJTYPE = 548;
            fIELDLISTFIELD2.VALUE   = "tony1234";//firstname


            FIELDLISTFIELD fIELDLISTFIELD3 = new FIELDLISTFIELD();

            fIELDLISTFIELD3.OBJTYPE = 549;
            fIELDLISTFIELD3.VALUE   = "avengers";//firstname



            fIELDLISTFIELDs[0] = fIELDLISTFIELD1;
            fIELDLISTFIELDs[1] = fIELDLISTFIELD2;
            fIELDLISTFIELDs[2] = fIELDLISTFIELD3;

            SAVEACCOUNTREQ sAVEACCOUNTREQ = new SAVEACCOUNTREQ {
                FIELDLIST     = fIELDLISTFIELDs,
                DMGCATEGORYAK = "VTA.DMGCAT29"
            };
            SaveAccountRequest saveAccountRequest = new SaveAccountRequest(sAVEACCOUNTREQ);


            //  SaveAccountResponse saveAccountResponse = wsAPIAccountClient.SaveAccount(saveAccountRequest);


            B2BAccountLogInRequest b2BAccountLogInRequest = new B2BAccountLogInRequest
            {
                ADmgCatCode = "Guests",
                AUsername   = "******",
                APsw        = "Iambatma"
            };

            B2BAccountLogInResponse b2BAccountLogInResponse = wsAPIAccountClient.B2BAccountLogIn(b2BAccountLogInRequest);



            WsAPIOrderClient wsAPIOrderClient = new WsAPIOrderClient();


            CHECKOUTREQ cHECKOUTREQ = new CHECKOUTREQ();


            ITEMLISTITEM[] iTEMLISTITEMs = new ITEMLISTITEM[1];



            //ITEMBASE iTEMBASE = new ITEMBASE {
            //AK = "VTA.EVN1.MCC28",
            //QTY ="1"
            //};



            //Order.PERFORMANCEBASE pERFORMANCEBASE= new Order.PERFORMANCEBASE {
            //AK = "VTA.EVN4.PRF100"
            //};

            // PRODUCTBASELISTPRODUCT

            //ITEMITEMPERFORMANCE[] iTEMITEMPERFORMANCE = new ITEMITEMPERFORMANCE[1];

            //iTEMITEMPERFORMANCE[1].AK = "VTA.EVN4.PRF100";

            ITEMLISTITEMPERFORMANCE[] iTEMLISTITEMPERFORMANCEs = new ITEMLISTITEMPERFORMANCE[1];

            iTEMLISTITEMPERFORMANCEs[1].AK = "VTA.EVN4.PRF100";

            iTEMLISTITEMs[1].AK              = "VTA.EVN1.MCC28";
            iTEMLISTITEMs[1].QTY             = "1";
            iTEMLISTITEMs[1].PERFORMANCELIST = iTEMLISTITEMPERFORMANCEs;

            //PERFORMANCE[] pERFORMANCEs = new PERFORMANCE[1];

            //pERFORMANCEs[1].AK = "VTA.EVN4.PRF100";



            //ITEM iTEM = new ITEM
            //{
            //   ITEMPERFORMANCELIST = iTEMITEMPERFORMANCE,


            //};



            Order.ACCOUNTSAVEBASE aCCOUNTSAVEBASE = new Order.ACCOUNTSAVEBASE
            {
                AK = "99901920000019"
            };

            ORDERSTATUS oRDERSTATUS = new ORDERSTATUS
            {
                APPROVED  = true,
                PAID      = true,
                ENCODED   = true,
                VALIDATED = true,
                COMPLETED = true
            };


            RESERVATIONBASE rESERVATIONBASE = new RESERVATIONBASE
            {
                RESERVATIONOWNER = aCCOUNTSAVEBASE
            };

            cHECKOUTREQ.SHOPCART = new SHOPCART
            {
                ITEMLIST    = iTEMLISTITEMs,
                RESERVATION = rESERVATIONBASE,
                FLAG        = oRDERSTATUS
            };


            CheckOutRequest checkOutRequest = new CheckOutRequest();



            WsAPIPerformanceClient wsAPIPerformanceClient = new WsAPIPerformanceClient();

            SEARCHPERFORMANCEREQ sEARCHPERFORMANCEREQ = new SEARCHPERFORMANCEREQ();

            sEARCHPERFORMANCEREQ.EVENTAK  = "VTA.EVN3";
            sEARCHPERFORMANCEREQ.SELLABLE = true;
            SearchPerformanceRequest searchPerformanceRequest = new SearchPerformanceRequest(sEARCHPERFORMANCEREQ);

            SEARCHPERFORMANCERESP sEARCHPERFORMANCERESP = wsAPIPerformanceClient.SearchPerformance(sEARCHPERFORMANCEREQ);

            Console.Write(sEARCHPERFORMANCERESP.PERFORMANCELIST);



            /*
             *
             *          Events2.WsAPIEventClient bosEvent = new Events2.WsAPIEventClient();
             *
             *          Events2.FindAllEventsRequest eventsRequest = new Events2.FindAllEventsRequest();
             *          //Events.FINDALLEVENTSRESP fINDALLEVENTSRESP = bosEvent.FindAllEvents(eventsRequest);
             *
             *          //Events2.FindAllEventsResponse eventsResponse = bosEvent.FindAllEvents(eventsRequest);
             *          Events2.FINDALLEVENTSRESP eventsResponse = bosEvent.FindAllEvents();
             */
            Events3.WsAPIEventClient bosEvent = new Events3.WsAPIEventClient();

            Events3.FindAllEventsResponse Response = Task.Run(async() => await bosEvent.FindAllEventsAsync().ConfigureAwait(false)).Result;
            Console.Write(Response);
            //Events2.FindAllEventsRequest eventsRequest = new Events2.FindAllEventsRequest();
            //Events.FINDALLEVENTSRESP fINDALLEVENTSRESP = bosEvent.FindAllEvents(eventsRequest);

            //Events2.FindAllEventsResponse eventsResponse = bosEvent.FindAllEvents(eventsRequest);
            //Events2.FINDALLEVENTSRESP eventsResponse = bosEvent.FindAllEvents();


            //Events.FINDEVENTSBYACCOUNTAKRESP eve = new FINDEVENTSBYACCOUNTAKRESP();
            //eve.FINDEVENTSBYACCOUNTAKRESPEVENTLIST =



            //Events.FindEventsByAccountAKResponse event_response = new Events.FindEventsByAccountAKResponse(eve);

            string r = ""; //[email protected]();

            // Events.FINDALLEVENTSRESPEVENTLIST esp = [email protected];

            //Console.WriteLine(r);

            XmlDocument docRE = new XmlDocument();

            docRE.LoadXml(r);

            string jsonRE = JsonConvert.SerializeXmlNode(docRE);

            BOSLogin2.UserLogoutRequest  logoutRequest  = new BOSLogin2.UserLogoutRequest();
            BOSLogin2.UserLogoutResponse logoutResponse = new BOSLogin2.UserLogoutResponse();


            string d = logoutResponse.ToString();

            Console.WriteLine(d);

            XmlDocument docR = new XmlDocument();

            docR.LoadXml(d);

            string jsonR = JsonConvert.SerializeXmlNode(docR);


            Console.WriteLine(LoginClient.UserLogin2("VTA.WKS19", "WebUser-01", "BOSweb123"));

            string b = LoginClient.UserLogin2("VTA.WKS19", "WebUser-01", "BOSweb123");
        }
        public void ForceCheckoutQueueRemove()
        {
            // Fill empty string parameters "" with auto-generated string.
            testEntityFactory.PopulateEmptyStrings = true;

            // Add test helpdesk.
            TestDataHelpdesk helpdeskData = testEntityFactory.AddHelpdesk();

            // Check that helpdesk was created successfully.
            Assert.AreEqual(HttpStatusCode.OK, helpdeskData.Response.Status);
            Assert.IsTrue(helpdeskData.Response.HelpdeskID > 0);

            // Create a unit. ID provided is 0, which will indicates creation of new helpdesk.
            List <string> topics   = new List <string>(new string[] { "Layouts", "Lifecycle" });
            TestDataUnit  unitData = testEntityFactory.AddUpdateUnit(0, helpdeskData.Response.HelpdeskID, "", "", false, topics);

            // Get topics that were created and check that there are 2 (Layouts and Lifecycle).
            List <TopicDTO> unitTopics = testEntityFactory.TopicsFacade.GetTopicsByUnitID(unitData.Response.UnitID).Topics;

            Assert.IsTrue(unitTopics.Count == 3);

            // Check that unit was created successfully.
            Assert.AreEqual(HttpStatusCode.OK, unitData.Response.Status);
            Assert.IsTrue(unitData.Response.UnitID > 0);

            // Create students and check that they were created successfully.
            TestDataNickname nicknameDataA = testEntityFactory.AddNickname();

            Assert.AreEqual(HttpStatusCode.OK, nicknameDataA.Response.Status);
            Assert.IsTrue(nicknameDataA.Response.StudentID > 0);
            TestDataNickname nicknameDataB = testEntityFactory.AddNickname();

            Assert.AreEqual(HttpStatusCode.OK, nicknameDataB.Response.Status);
            Assert.IsTrue(nicknameDataB.Response.StudentID > 0);

            // Create two checkins and check that they're created successfully.
            TestDataCheckIn checkinDataA = testEntityFactory.AddCheckIn(nicknameDataA.Response.StudentID, null, null, unitData.Response.UnitID);

            Assert.AreEqual(HttpStatusCode.OK, checkinDataA.Response.Status);
            Assert.IsTrue(checkinDataA.Response.CheckInID > 0);
            TestDataCheckIn checkinDataB = testEntityFactory.AddCheckIn(nicknameDataB.Response.StudentID, null, null, unitData.Response.UnitID);

            Assert.AreEqual(HttpStatusCode.OK, checkinDataB.Response.Status);
            Assert.IsTrue(checkinDataB.Response.CheckInID > 0);

            // Create three queue items, 2 which are associated with checkinDataA and 1 with checkinDataB.
            TestDataQueue queueDataA = testEntityFactory.AddQueueItem(nicknameDataA.Response.StudentID,
                                                                      unitTopics[0].TopicId, checkinDataA.Response.CheckInID);

            Assert.AreEqual(HttpStatusCode.OK, queueDataA.Response.Status);
            Assert.IsTrue(queueDataA.Response.ItemId > 0);
            TestDataQueue queueDataB = testEntityFactory.AddQueueItem(nicknameDataA.Response.StudentID,
                                                                      unitTopics[0].TopicId, checkinDataA.Response.CheckInID);

            Assert.AreEqual(HttpStatusCode.OK, queueDataB.Response.Status);
            Assert.IsTrue(queueDataB.Response.ItemId > 0);
            TestDataQueue queueDataC = testEntityFactory.AddQueueItem(nicknameDataB.Response.StudentID,
                                                                      unitTopics[0].TopicId, checkinDataB.Response.CheckInID);

            Assert.AreEqual(HttpStatusCode.OK, queueDataC.Response.Status);
            Assert.IsTrue(queueDataC.Response.ItemId > 0);

            // Manuall checkout checkinDataB and check that it succeeded.
            CheckOutRequest checkoutRequestB = new CheckOutRequest
            {
                ForcedCheckout = false
            };
            var checkoutBResponse = testEntityFactory.CheckInFacade.CheckOut(checkoutRequestB, checkinDataB.Response.CheckInID);

            Assert.AreEqual(HttpStatusCode.OK, checkoutBResponse.Status);
            Assert.IsTrue(checkoutBResponse.Result == true);

            // Do the force checkout and queue remove.
            var forceCheckoutQueueRemoveResponse = testEntityFactory.HelpdeskFacade.ForceCheckoutQueueRemove(helpdeskData.Response.HelpdeskID);

            Assert.AreEqual(HttpStatusCode.OK, forceCheckoutQueueRemoveResponse.Status);
            Assert.IsTrue(forceCheckoutQueueRemoveResponse.Result == true);

            // Check all checkouts and and queue removals occured as expected.
            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                // CheckinA was was not manually checked out, so ForcedCheckout should be true.
                var checkinA = context.Checkinhistory.FirstOrDefault(c => c.CheckInId == checkinDataA.Response.CheckInID);
                Assert.IsTrue(checkinA.ForcedCheckout == true);
                Assert.IsTrue(checkinA.CheckoutTime != null);

                // CheckinB was manually checked out, so ForcedCheckout should be false.
                var checkinB = context.Checkinhistory.FirstOrDefault(c => c.CheckInId == checkinDataB.Response.CheckInID);
                Assert.IsTrue(checkinB.ForcedCheckout == false);
                Assert.IsTrue(checkinB.CheckoutTime != null);

                // Check that all queue items were removed.
                var queueItemA = context.Queueitem.FirstOrDefault(q => q.ItemId == queueDataA.Response.ItemId);
                Assert.IsTrue(queueItemA.TimeRemoved != null);

                var queueItemB = context.Queueitem.FirstOrDefault(q => q.ItemId == queueDataB.Response.ItemId);
                Assert.IsTrue(queueItemB.TimeRemoved != null);

                var queueItemC = context.Queueitem.FirstOrDefault(q => q.ItemId == queueDataC.Response.ItemId);
                Assert.IsTrue(queueItemC.TimeRemoved != null);
            }
        }