Beispiel #1
0
        protected override async Task InitializeAsync(INavigationParameters parameters)
        {
            await base.InitializeAsync(parameters);

            if (parameters.ContainsKey("useLastKnownProvider") && (bool)parameters["useLastKnownProvider"])
            {
                string providerName = await ApiAuthentication.GetProviderNameAsync();

                switch (providerName)
                {
                case "GeoWiki":
                    ApiAuthentication.AuthenticateWithGeoWiki();
                    break;

                case "Google":
                    ApiAuthentication.AuthenticateWithGoogle();
                    break;

                case "Facebook":
                    ApiAuthentication.AuthenticateWithFacebook();
                    break;

                default:
                    throw new ArgumentException(nameof(providerName));
                }
            }
        }
		public MintCSVFile(string shoulder = null, string csvFilePath = null, string resultFile = null, ApiAuthentication authentication = null, int limit = LimitAll)
		{
			this.Shoulder = shoulder;
			this.CsvFilePath = csvFilePath;
			this.ResultFile = resultFile;
			this.Authentication = authentication;
			this.Limit = limit;
		}
Beispiel #3
0
        public async Task <IEnumerable <ValidationSession> > GetValidationSessionsAsync()
        {
            await ApiAuthentication.EnsureAuthenticatedAsync();

            int userId = await ApiAuthentication.GetUserIdAsync();

            User user = await Context.Users.SingleAsync(x => x.Id == userId);

            return(await Context.ValidationSessions.Where(x => x.User == user).ToListAsync());
        }
Beispiel #4
0
        public async Task <ValidationSession> TryGetValidationSessionByIdAsync(int id)
        {
            await ApiAuthentication.EnsureAuthenticatedAsync();

            int userId = await ApiAuthentication.GetUserIdAsync();

            User user = await Context.Users.SingleAsync(x => x.Id == userId);

            return(await Context.ValidationSessions.SingleOrDefaultAsync(x => x.User == user && x.Id == id));
        }
        public bool LogIn(Window owner, out string loginToken)
        {
            loginToken = null;

            if (ReadFactorioCredentials(out username, out token))
            {
                loginToken = token;
                return(true);
            }

            if (IsLoggedInWithToken()) // Credentials and token available.
            {
                // Token only expires on user request, best to not check and save bandwidth.
            }
            else if (IsLoggedIn()) // Only credentials available.
            {
                AuthenticationInfo info = ApiAuthentication.LogIn(Username, Token);
                username = info.Username;
                token    = info.Token;
                if (App.Instance.Settings.SaveCredentials)
                {
                    Save();
                }
            }


            while (!IsLoggedInWithToken())
            {
                var loginWindow = new LoginWindow
                {
                    Owner = owner,
                    SaveCredentialsBox = { IsChecked = App.Instance.Settings.SaveCredentials },
                };
                bool?loginResult = loginWindow.ShowDialog();
                if (loginResult == null || loginResult == false)
                {
                    return(false);
                }
                username = loginWindow.UsernameBox.Text;
                token    = loginWindow.TokenBox.Text;
                bool saveCredentials = loginWindow.SaveCredentialsBox.IsChecked ?? false;
                App.Instance.Settings.SaveCredentials = saveCredentials;

                AuthenticationInfo info = ApiAuthentication.LogIn(Username, Token);
                username = info.Username;
                token    = info.Token;
                if (saveCredentials)
                {
                    Save();
                }
            }

            loginToken = token;
            return(true);
        }
Beispiel #6
0
        public bool LogIn(Window owner, out string loginToken)
        {
            loginToken = null;

            bool failed = false;

            if (IsLoggedInWithToken()) // Credentials and token available.
            {
                // ToDo: check if token is still valid (does it actually expire?).
            }
            else if (IsLoggedIn()) // Only credentials available.
            {
                failed = !ApiAuthentication.LogIn(Username, Password, out token);
            }

            if (failed)
            {
                token     = null;
                container = null;
            }

            while (!IsLoggedInWithToken())
            {
                var loginWindow = new LoginWindow
                {
                    Owner = owner,
                    SaveCredentialsBox = { IsChecked = App.Instance.Settings.SaveCredentials },
                    FailedText         = { Visibility = failed ? Visibility.Visible : Visibility.Collapsed },
                };
                bool?loginResult = loginWindow.ShowDialog();
                if (loginResult == null || loginResult == false)
                {
                    return(false);
                }
                username = loginWindow.UsernameBox.Text;
                password = loginWindow.PasswordBox.SecurePassword;

                bool saveCredentials = loginWindow.SaveCredentialsBox.IsChecked ?? false;
                App.Instance.Settings.SaveCredentials = saveCredentials;

                failed = !ApiAuthentication.LogIn(Username, Password, out token);
                if (failed)
                {
                    token     = null;
                    container = null;
                }
                else if (saveCredentials)
                {
                    Save();
                }
            }

            loginToken = token;
            return(true);
        }
        protected async Task <bool> Authorized(HttpRequest req, ILogger log)
        {
            var authorizationResult = await ApiAuthentication.AuthenticateAsync(req.Headers);

            if (authorizationResult.Failed)
            {
                log.LogWarning(authorizationResult.FailureReason);
                return(false);
            }

            Principal = authorizationResult.User;
            return(true);
        }
Beispiel #8
0
        public async Task AddValidationSessionAsync(ValidationSession validationSession)
        {
            await ApiAuthentication.EnsureAuthenticatedAsync();

            int userId = await ApiAuthentication.GetUserIdAsync();

            User user = await Context.Users.SingleAsync(x => x.Id == userId);

            validationSession.User = user;

            await Context.ValidationSessions.AddAsync(validationSession);

            await SaveChangesAsync();
        }
Beispiel #9
0
        public ApiResult Login(string user_code, string user_password, int deviceType = 0, string clientId = "")
        {
            if (string.IsNullOrEmpty(user_code))
            {
                throw new ArgumentException("用户名不能为空。", "user_code");
            }

            if (string.IsNullOrEmpty(user_password))
            {
                throw new ArgumentException("密码不能为空.", "user_password");
            }

            using DapperHelper helper = new DapperHelper();
            User nowUser = helper.QueryFirst <User>(@"select * from t_sys_user where user_code = '" + user_code + "' or user_name = '" + user_code + "'");

            if (nowUser == null)
            {
                throw new ArgumentException("用户不存在或密码错误!");
            }

            #region 验证密码
            if (!string.Equals(nowUser.User_password, user_password))
            {
                throw new ArgumentException("用户不存在或密码错误!");
            }
            #endregion

            if (nowUser.Is_enable != "1")
            {
                throw new ArgumentException("用户已失效!");
            }
            string    passkey = "";
            ApiResult ret     = new ApiResult().SetSuccessResult();
            if (nowUser != null)
            {
                passkey = ApiTools.StringToMD5Hash(nowUser.User_id + nowUser.User_name + DateTime.UtcNow + Guid.NewGuid());
                //生成Token
                var token        = ApiAuthentication.GenUserToken(nowUser.User_name, "testUser");
                var refreshToken = "123456123456123456";
                nowUser.User_password = "";
                ret.ResultObject      = new { Token = token, RefreshToken = refreshToken, SessionKey = passkey, LogonUser = nowUser };
            }
            else
            {
                ret = new ApiResult().SetFailedResult("-1", "获取用户数据失败!");
            }
            return(ret);
        }
Beispiel #10
0
        public void Run()
        {
            ApiAuthentication auth = null;

            //auth = new PasswordAuthentication("username", "passsword", "developerToken");

            auth = new OAuthAuthentication(
                "accessToken",
                "refreshToken",
                "developerToken",
                DateTime.UtcNow.Ticks,
                "clientId");

            IList <AccountInfo> accounts = null;

            using (CustomerMHelper cs = new CustomerMHelper(LogHandler))
            {
                var response = cs.TryGetAccountsInfo(auth, CustomerId, true);
                if (response != null && response.AccountsInfo != null)
                {
                    accounts = response.AccountsInfo.ToList();
                }
            }

            if (accounts == null || accounts.Count == 0)
            {
                return;
            }

            //you can submit a report request which could most contain 1000 accountIds per time
            //if you have more than 1000 accounts, then you should submit the report request every 1000 accountIds
            //for demo, we just pick up the first 1000 accountIds
            if (accounts.Count > 1000)
            {
                accounts = accounts.TakeWhile((p, i) => { return(i < 1000); }).ToList();
            }

            using (ReportingHelper rs = new ReportingHelper(LogHandler))
            {
                //Submit & download
                var succeed =
                    rs.TrySubmitGenerateReport(auth, BuildRequest(accounts.Select(p => p.Id).ToArray()), CustomerId, null, SaveFilePath);
            }
        }
Beispiel #11
0
        public async Task EnsureUserExistsAsync()
        {
            await ApiAuthentication.EnsureAuthenticatedAsync();

            int userId = await ApiAuthentication.GetUserIdAsync();

            User user = await Context.Users.SingleOrDefaultAsync(x => x.Id == userId);

            if (user == null)
            {
                user = new User
                {
                    Id   = userId,
                    Name = await ApiAuthentication.GetUserNameAsync(),
                };

                await Context.Users.AddAsync(user);
                await SaveChangesAsync();
            }
        }
Beispiel #12
0
        protected async Task LoadValidationSessionsAsync()
        {
            if (await ApiAuthentication.IsAuthenticatedAsync())
            {
                await AppDataService.EnsureUserExistsAsync();
            }

            IEnumerable <ValidationSession> validationSessions = await AppDataService.GetValidationSessionsAsync();

            Items = new ObservableCollection <ItemViewModel>(Mapper.Map <IEnumerable <ItemViewModel> >(validationSessions)).OnPropertyChanged(
                (sender, args) =>
            {
                OnPropertyChanged(nameof(ShowInstructions));
                OnPropertyChanged(nameof(ShowList));

                ShowPrimaryAction = !Items.Any(x => x.IsChecked);
            })
                    .OnChildrenPropertyChanged((sender, args) => { ShowPrimaryAction = !Items.Any(x => x.IsChecked); });

            Items.ForEach(x => { x.ItemTapped += ItemTapped; });
        }
Beispiel #13
0
        public ActionResult Login(string login, string clave, string ReturnUrl)
        {
            if (string.IsNullOrEmpty(login))
                login = "******";

            var api = new ApiAuthentication("", "");

                User userValid = api.UserAuthentication(login, clave);

                if ((userValid.UserCode != 0) && (userValid.ClientObject != null)){

                    var authTicket = new FormsAuthenticationTicket(1, login,
                        DateTime.Now, DateTime.Now.AddMinutes(30), true,
                        "Admin");
                    string cookieContents = FormsAuthentication.Encrypt(authTicket);
                    var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieContents)
                    {
                        Expires = authTicket.Expiration,
                        Path = FormsAuthentication.FormsCookiePath
                    };
                    Response.Cookies.Add(cookie);
                    Session.SetData<User>("user", userValid);

                    System.Web.HttpContext.Current.Session["user2"] = userValid;

                    if (!string.IsNullOrEmpty(ReturnUrl)){
                        Response.Redirect(ReturnUrl);
                    }
                    else {
                      //  Response.Redirect("/Home/Index");
                        return RedirectToAction("Index", "Home");
                    }

            }

            return View();
        }
        public async Task <SuccessResponse> UpdateAsync <TApiAuthentication, TUser>(ApiAuthentication <TApiAuthentication, TUser> apiAuthentication, TApiAuthentication details, bool destructive = false)
        {
            Ensure.ArgumentNotNull(apiAuthentication, nameof(apiAuthentication));

            return(await UpdateAsync(apiAuthentication.Key, details, destructive : destructive));
        }
Beispiel #15
0
        // GET: ShipworkApi
        public ActionResult Index(string action, string username, string password, string maxcount, string order, int?status, string tracking, string carrier, string shippingcost, DateTime?shippingdate, DateTime?processeddate, bool?voided, DateTime?voideddate, string voideduser, string serviceused, decimal?totalcharges, decimal?totalweight, bool?returnshipment)
        {
            try
            {
                ErrorLog.LogInfo(action + " - Tracking " + tracking);
                if (!(username == ConfigurationManager.AppSettings["LoginUsername"].ToString() && password == ConfigurationManager.AppSettings["LoginPassword"].ToString()))
                {
                    return(null);
                }
                if (this.Request.QueryString["Action"]?.ToString().ToLower() == "getmodule" || action.ToLower() == "getmodule")
                {
                    ExigoModel.LoadExigoOrders(null);
                    string XML = "<?xml version=\"1.0\"?>" +
                                 "<ShipWorks schemaVersion=\"1.1.0\" moduleVersion=\"3.10.0\">" +
                                 "<Module>" +
                                 "<Platform>" + ConfigurationManager.AppSettings["Platform"].ToString() + "</Platform>" +
                                 "<Developer>" + ConfigurationManager.AppSettings["Developer"].ToString() + "</Developer>" +
                                 "<Capabilities>" +
                                 "<DownloadStrategy>ByModifiedTime</DownloadStrategy>" +
                                 "<OnlineCustomerID dataType=\"numeric\" supported=\"true\"/>" +
                                 "<OnlineStatus dataType=\"numeric\" supported=\"true\" supportsComments=\"true\"/>" +
                                 "<OnlineShipmentUpdate supported=\"false\"/>" +
                                 "</Capabilities>" +
                                 "</Module>" +
                                 "</ShipWorks>";

                    var x = new System.Xml.XmlDocument();
                    x.LoadXml(XML);
                    return(new XmlActionResult(x));
                }
                else if (this.Request.QueryString["action"]?.ToString().ToLower() == "getstore" || action.ToLower() == "getstore")
                {
                    string XML = "<?xml version=\"1.0\"?>" +
                                 "<ShipWorks schemaVersion=\"1.1.0\" moduleVersion=\"3.10.0\">" +
                                 "<Store>" +
                                 "<Name>" + ConfigurationManager.AppSettings["StoreName"].ToString() + "</Name>" +
                                 "<CompanyOrOwner>" + ConfigurationManager.AppSettings["CompanyOrOwner"].ToString() + "</CompanyOrOwner>" +
                                 "<Email>" + ConfigurationManager.AppSettings["Email"].ToString() + "</Email>" +
                                 "<City>" + ConfigurationManager.AppSettings["City"].ToString() + "</City>" +
                                 "<State>" + ConfigurationManager.AppSettings["State"].ToString() + "</State>" +
                                 "<PostalCode>" + ConfigurationManager.AppSettings["PostalCode"].ToString() + "</PostalCode>" +
                                 "<Country>United State</Country>" +
                                 "<Website>www.makeuperaser.com</Website>" +
                                 "</Store>" +
                                 "</ShipWorks>";

                    var x = new System.Xml.XmlDocument();
                    x.LoadXml(XML);
                    return(new XmlActionResult(x));
                }
                else if (this.Request.QueryString["action"]?.ToString().ToLower() == "getstatuscodes" || action.ToLower() == "getstatuscodes")
                {
                    string XML = "<?xml version=\"1.0\"?>" +
                                 "<ShipWorks schemaVersion=\"1.1.0\" moduleVersion=\"3.10.0\">" +
                                 "<StatusCodes>" +
                                 "<StatusCode>" +
                                 "<Code>1</Code>" +
                                 "<Name>Pending</Name>" +
                                 "</StatusCode>" +
                                 "<StatusCode>" +
                                 "<Code>2</Code>" +
                                 "<Name>Processing</Name>" +
                                 "</StatusCode>" +
                                 "<StatusCode>" +
                                 "<Code>3</Code>" +
                                 "<Name>Delivered</Name>" +
                                 "</StatusCode>" +
                                 "<StatusCode>" +
                                 "<Code>4</Code>" +
                                 "<Name>PayPal [Transactions]</Name>" +
                                 "</StatusCode>" +
                                 "</StatusCodes>" +
                                 "</ShipWorks>";

                    var x = new System.Xml.XmlDocument();
                    x.LoadXml(XML);
                    return(new XmlActionResult(x));
                }
                else if (this.Request.QueryString["action"]?.ToString().ToLower() == "getcount" || action.ToLower() == "getcount")
                {
                    string XML = "";
                    using (Data.ExigoOrdersEntities DB = new Data.ExigoOrdersEntities())
                    {
                        var count = DB.Orders.Where(y => y.IsOrderSent == false).Count();

                        XML = "<?xml version=\"1.0\"?>" +
                              "<ShipWorks schemaVersion=\"1.1.0\" moduleVersion=\"3.10.0\">" +
                              "<Parameters>" +
                              "<Start>" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</Start>" +
                              "<OrderCount>" + count + "</OrderCount>" +
                              "</Parameters>" +
                              "</ShipWorks>";
                    }
                    var x = new System.Xml.XmlDocument();
                    x.LoadXml(XML);
                    return(new XmlActionResult(x));
                }
                else if (this.Request.QueryString["action"]?.ToString().ToLower() == "getorders" || action.ToLower() == "getorders")
                {
                    List <Data.Order> orders = new List <Data.Order>();
                    string            XML    = "";
                    using (Data.ExigoOrdersEntities DB = new Data.ExigoOrdersEntities())
                    {
                        orders = DB.Orders.Where(y => y.IsOrderSent == false).ToList();
                        orders = orders.Take(Convert.ToInt32(maxcount)).ToList();
                        XML    = "<?xml version=\"1.0\"?>" +
                                 "<ShipWorks schemaVersion=\"1.1.0\" moduleVersion=\"3.10.0\">" +
                                 "<Parameters>" +
                                 "<StartGMT>" + DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss") + "</StartGMT>" +
                                 "<StartLocal>" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</StartLocal>" +
                                 "<End>" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</End>" +
                                 "<MaxCount>" + maxcount + "</MaxCount>" +
                                 "</Parameters>" +
                                 "<Orders>";
                        foreach (var Order in orders)
                        {
                            XML += "<Order>" +
                                   "<OrderNumber>" + Order.OrderNumber + "</OrderNumber>" +
                                   "<OrderNumberPrefix>" + "Exigo" + "</OrderNumberPrefix>" +
                                   "<OrderNumberPostfix>" + "API" + "</OrderNumberPostfix>" +
                                   "<OrderDate>" + (Order.OrderDate != null ? Order.OrderDate.Value.ToString("yyyy-MM-ddTHH:mm:ss") : "") + "</OrderDate>" +
                                   "<LastModified>" + (Order.LastModified != null ? Order.LastModified.Value.ToString("yyyy-MM-ddTHH:mm:ss") : "") + "</LastModified>" +
                                   "<ShippingMethod>Flat Rate (Best Way)</ShippingMethod>" +
                                   "<StatusCode>" + 1 + "</StatusCode>" +
                                   "<CustomerID>" + Order.CustomerID + "</CustomerID>" +
                                   "<Notes>" + Order.Notes + "</Notes>" +
                                   "<ShippingAddress>" +
                                   "<FullName>" + Order.ShippingFullName + "</FullName>" +
                                   "<Company>" + Order.ShippingCompany + "</Company>" +
                                   "<Street1>" + Order.ShippingStreet1 + "</Street1>" +
                                   (string.IsNullOrEmpty(Order.ShippingStreet2) ? "" : "<Street2>" + Order.ShippingStreet2 + "</Street2>") +
                                   (string.IsNullOrEmpty(Order.ShippingStreet3) ? "" : "<Street3>" + Order.ShippingStreet3 + "</Street3>") +
                                   "<City>" + Order.ShippingCity + "</City>" +
                                   "<State>" + Order.ShippingState + "</State>" +
                                   "<PostalCode>" + Order.ShippingPostalCode + "</PostalCode>" +
                                   "<Country>" + Order.ShippingCountry + "</Country>" +
                                   "<Phone>" + Order.ShippingPhone + "</Phone>" +
                                   "<Email>" + Order.ShippingEmail + "</Email>" +
                                   "</ShippingAddress>" +
                                   "<BillingAddress>" +
                                   "<FullName>" + Order.BillingFullName + "</FullName>" +
                                   "<Company>" + Order.BillingCompany + "</Company>" +
                                   "<Street1>" + Order.BillingStreet1 + "</Street1>" +
                                   (string.IsNullOrEmpty(Order.BillingStreet2) ? "" : "<Street2>" + Order.BillingStreet2 + "</Street2>") +
                                   (string.IsNullOrEmpty(Order.BillingStreet3) ? "" : "<Street3>" + Order.BillingStreet3 + "</Street3>") +
                                   "<City>" + Order.BillingCity + "</City>" +
                                   "<State>" + Order.BillingState + "</State>" +
                                   "<PostalCode>" + Order.BillingPostalCode + "</PostalCode>" +
                                   "<Country>" + Order.BillingCountry + "</Country>" +
                                   "<Phone>" + Order.BillingPhone + "</Phone>" +
                                   "<Email>" + Order.BillingEmail + "</Email>" +
                                   "</BillingAddress>" +
                                   "<Payment>" +
                                   "<Method>" + Order.PaymentMethod + "</Method>";
                            if (Order.PaymentMethod == PaymentType.CreditCard.ToString() && false)
                            {
                                XML += "<CreditCard>" +
                                       "<Type>" + Order.CreditCardType + "</Type>" +
                                       "<Owner>" + Order.CreditCardOwner + "</Owner>" +
                                       "<Number>" + Order.CreditCardNumber + "</Number>" +
                                       "<Expiries>" + Order.CreditCardExpires + "</Expiries>" +
                                       "</CreditCard>";
                            }
                            XML += "</Payment>" +
                                   "<Items>";
                            foreach (var orderItem in Order.OrderItems)
                            {
                                XML += "<Item>" +
                                       "<ItemID>" + orderItem.OrderItemID + "</ItemID>" +
                                       "<Code>" + orderItem.Code + "</Code>" +
                                       "<Name>" + orderItem.Name + "</Name>" +
                                       "<Quantity>" + orderItem.Quantity + "</Quantity>" +
                                       "<UnitPrice>" + orderItem.UnitPrice + "</UnitPrice>" +
                                       "<Weight>" + orderItem.Weight + "</Weight>" +
                                       "</Item>";
                            }
                            XML += "</Items>" +
                                   "<Totals>" +
                                   "<Total impact=\"none\" class=\"subtotal\" name=\"Sub-Total\" id=\"1\">" + Order.OrderItems.Sum(y => y.UnitPrice * y.Quantity) + "</Total>" +
                                   "<Total impact=\"add\" class=\"shipping\" name=\"Shipping Charges\" id=\"2\">" + Order.ShippingCost + "</Total>" +
                                   "<Total impact=\"none\" class=\"total\" name=\"Total\" id=\"3\">" + Order.Total + "</Total>" +
                                   "</Totals>";
                            if (Convert.ToBoolean(ConfigurationManager.AppSettings["Debug"]))
                            {
                                XML += "<Debug>" +
                                       "<LastModifiedLocal>" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</LastModifiedLocal>" +
                                       "</Debug>";
                            }
                            XML += "</Order>";
                        }
                        XML += "</Orders>" +
                               "</ShipWorks>";

                        XML = XML.Replace("&", "&amp;").Replace("\'", "&apos;");

                        orders.ForEach(y => y.IsOrderSent = true);
                        DB.SaveChanges();
                    }
                    var x = new System.Xml.XmlDocument();
                    x.LoadXml(XML);
                    return(new XmlActionResult(x));
                }
                else if (this.Request.QueryString["action"]?.ToString().ToLower() == "updatestatus" || action.ToLower() == "updatestatus")
                {
                    using (ExigoOrdersEntities DB = new ExigoOrdersEntities())
                    {
                        var OrderID = Convert.ToInt32(order.Replace("API", "").Replace("Exigo", ""));

                        var Order = DB.Orders.Where(x => x.OrderNumber == OrderID).FirstOrDefault();
                        if (Order != null)
                        {
                            Order.StatusCode = status;
                            DB.SaveChanges();

                            string XML = "<?xml version=\"1.0\"?>" +
                                         "<ShipWorks schemaVersion=\"1.1.0\" moduleVersion=\"3.10.0\">" +
                                         "<Parameters>" +
                                         "<Start>" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</Start>" +
                                         "</Parameters>" +
                                         "</ShipWorks>";

                            var x = new System.Xml.XmlDocument();
                            x.LoadXml(XML);
                            return(new XmlActionResult(x));
                        }
                    }
                }
                else if (this.Request.QueryString["action"]?.ToString().ToLower() == "updateshipment" || action.ToLower() == "updateshipment")
                {
                    using (ExigoOrdersEntities DB = new ExigoOrdersEntities())
                    {
                        var OrderID = Convert.ToInt32(order.Replace("API", "").Replace("Exigo", ""));

                        var Order = DB.Orders.Where(x => x.OrderNumber == OrderID).FirstOrDefault();
                        if (Order != null)
                        {
                            Order.Tracking       = tracking;
                            Order.Carrier        = carrier;
                            Order.ShippingDate   = shippingdate;
                            Order.ProcessedDate  = processeddate;
                            Order.Voided         = voided;
                            Order.VoidedDate     = voideddate;
                            Order.VoidedUser     = voideduser;
                            Order.ServiceUsed    = serviceused;
                            Order.TotalCharges   = totalcharges;
                            Order.TotalWeight    = totalweight;
                            Order.ReturnShipment = returnshipment;
                            DB.SaveChanges();

                            ExigoApiSoapClient client = new ExigoApiSoapClient();
                            var auth = new ApiAuthentication();
                            auth.LoginName = ConfigurationManager.AppSettings["LoginName"].ToString();
                            auth.Password  = ConfigurationManager.AppSettings["Password"].ToString();
                            auth.Company   = ConfigurationManager.AppSettings["Company"].ToString();

                            /// Update order to Exigo
                            var req = new UpdateOrderRequest();
                            req.OrderID         = OrderID;
                            req.TrackingNumber1 = tracking;
                            var res = client.UpdateOrder(auth, req);

                            if (!string.IsNullOrEmpty(tracking))
                            {
                                ChangeOrderStatusRequest orderStatusReq = new ChangeOrderStatusRequest();
                                orderStatusReq.OrderID     = OrderID;
                                orderStatusReq.OrderStatus = OrderStatusType.Shipped;
                                //Submit the request to the server

                                ChangeOrderStatusResponse orderStatusRes = client.ChangeOrderStatus(auth, orderStatusReq);
                                if (orderStatusRes.Result.Status == ResultStatus.Success)
                                {
                                }

                                UpdateOrderRequest updateOrderReq = new UpdateOrderRequest();
                                updateOrderReq.OrderID         = OrderID;
                                updateOrderReq.TrackingNumber1 = tracking;

                                UpdateOrderResponse updateOrderRes = client.UpdateOrder(auth, updateOrderReq);
                                if (updateOrderRes.Result.Status == ResultStatus.Success)
                                {
                                }
                            }
                            string XML = "<?xml version=\"1.0\"?>" +
                                         "<ShipWorks schemaVersion=\"1.1.0\" moduleVersion=\"3.10.0\">" +
                                         "<Parameters>" +
                                         "<Start>" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</Start>" +
                                         "<Result>" + res.Result.Status.ToString() + "</Result>" +
                                         "</Parameters>" +
                                         "</ShipWorks>";

                            var x = new System.Xml.XmlDocument();
                            x.LoadXml(XML);
                            return(new XmlActionResult(x));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorLog.LogError(ex);
            }
            return(null);
        }
Beispiel #16
0
        public bool LogIn(Window owner, out string loginToken)
        {
            loginToken = null;

            bool failed = false;

            if (IsLoggedInWithToken()) // Credentials and token available.
            {
                // Token only expires on user request, best to not check and save bandwidth.
            }
            else if (IsLoggedIn()) // Only credentials available.
            {
                AuthenticationInfo info;
                failed = !ApiAuthentication.LogIn(Username, Password, out info);
                if (!failed)
                {
                    username = info.Username;
                    token    = info.Token;
                    if (App.Instance.Settings.SaveCredentials)
                    {
                        Save();
                    }
                }
            }

            if (failed)
            {
                token = null;
            }

            while (!IsLoggedInWithToken())
            {
                var loginWindow = new LoginWindow
                {
                    Owner = owner,
                    SaveCredentialsBox = { IsChecked = App.Instance.Settings.SaveCredentials },
                    FailedText         = { Visibility = failed ? Visibility.Visible : Visibility.Collapsed },
                };
                bool?loginResult = loginWindow.ShowDialog();
                if (loginResult == null || loginResult == false)
                {
                    return(false);
                }
                username = loginWindow.UsernameBox.Text;
                password = loginWindow.PasswordBox.SecurePassword;

                bool saveCredentials = loginWindow.SaveCredentialsBox.IsChecked ?? false;
                App.Instance.Settings.SaveCredentials = saveCredentials;

                AuthenticationInfo info;
                failed = !ApiAuthentication.LogIn(Username, Password, out info);
                if (failed)
                {
                    token = null;
                }
                else
                {
                    username = info.Username;
                    token    = info.Token;
                    if (saveCredentials)
                    {
                        Save();
                    }
                }
            }

            loginToken = token;
            return(true);
        }
        public async Task <SuccessResponse> DeleteAsync <TApiAuthentication, TUser>(ApiAuthentication <TApiAuthentication, TUser> apiAuthentication)
        {
            Ensure.ArgumentNotNull(apiAuthentication, nameof(apiAuthentication));

            return(await DeleteAsync(apiAuthentication.Key));
        }
        public async Task <ApiAuthentication <TApiAuthentication, TUser> > GetAsync <TApiAuthentication, TUser>(ApiAuthentication <TApiAuthentication, TUser> apiAuthentication, string[] expand = null)
        {
            Ensure.ArgumentNotNull(apiAuthentication, nameof(apiAuthentication));

            return(await GetAsync <TApiAuthentication, TUser>(apiAuthentication.Key, expand : expand));
        }
Beispiel #19
0
        /// <summary>
        /// Custom configuration for Swagger para mock (cuando se desea añader manualmente la header) (No hay AAD)
        /// </summary>
        /// <param name="services"></param>
        /// <param name="settings"></param>
        /// <returns></returns>
        public static IServiceCollection ConfigureSwaggerMock(this IServiceCollection services, ApiAuthentication settings)
        {
            ServiceProvider     serviceProvider = services.BuildServiceProvider();
            IWebHostEnvironment env             = serviceProvider.GetRequiredService <IWebHostEnvironment>();

            services.AddSwaggerGen(c =>
            {
                var dir = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
                foreach (var fi in dir.EnumerateFiles("*.xml"))
                {
                    c.IncludeXmlComments(fi.FullName);
                }

                c.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "Acciona Covid-19", Version = $"v1.{env.EnvironmentName}", Description = "WEB API"
                });
                c.OperationFilter <ResponseTypeOperationFilter>();
                c.DocumentFilter <SwaggerAddEnumDescriptions>();
            });

            return(services);
        }
Beispiel #20
0
        public static void LoadExigoOrders(DateTime?startDate)
        {
            ExigoApiSoapClient api = new ExigoApiSoapClient();
            var auth = new ApiAuthentication();

            auth.LoginName = ConfigurationManager.AppSettings["LoginName"].ToString();
            auth.Password  = ConfigurationManager.AppSettings["Password"].ToString();
            auth.Company   = ConfigurationManager.AppSettings["Company"].ToString();

            using (ExigoOrdersEntities DB = new ExigoOrdersEntities())
            {
                var order = DB.Orders.OrderByDescending(x => x.CreatedDate).FirstOrDefault();
                if (order != null)
                {
                    startDate = order.CreatedDate;
                }
            }

            var req = new GetOrdersRequest();

            req.OrderDateStart = startDate ?? DateTime.Now.Date;
            req.OrderDateEnd   = DateTime.Now;
            req.OrderStatus    = OrderStatusType.Accepted;

            //Gets the initial batch
            var gorRes = api.GetOrders(auth, req);

            //this will now loop through, process the first 100 and keep going
            while (gorRes.Orders.Length > 0)
            {
                foreach (var exigoOrder in gorRes.Orders)
                {
                    using (ExigoOrdersEntities DB = new ExigoOrdersEntities())
                    {
                        Order order = new Order();
                        order.OrderNumber        = exigoOrder.OrderID;
                        order.OrderNumberPrefix  = "";
                        order.OrderNumberPostfix = "";
                        order.OrderDate          = exigoOrder.OrderDate;
                        order.LastModified       = exigoOrder.ModifiedDate;

                        order.StatusCode         = (int)exigoOrder.OrderStatus;
                        order.CustomerID         = exigoOrder.CustomerID;
                        order.Notes              = exigoOrder.Notes;
                        order.ShippingFullName   = exigoOrder.FirstName + " " + exigoOrder.LastName;
                        order.ShippingCompany    = "";
                        order.ShippingStreet1    = exigoOrder.Address1;
                        order.ShippingStreet2    = exigoOrder.Address2;
                        order.ShippingStreet3    = exigoOrder.Address3;
                        order.ShippingCity       = exigoOrder.City;
                        order.ShippingState      = exigoOrder.State;
                        order.ShippingPostalCode = exigoOrder.Zip;
                        order.ShippingCountry    = exigoOrder.Country;
                        order.ShippingPhone      = exigoOrder.Phone;
                        order.ShippingEmail      = exigoOrder.Email;
                        order.BillingFullName    = exigoOrder.FirstName + " " + exigoOrder.LastName;
                        order.BillingCompany     = "";
                        order.BillingStreet1     = exigoOrder.Address1;
                        order.BillingStreet2     = exigoOrder.Address2;
                        order.BillingStreet3     = exigoOrder.Address3;
                        order.BillingCity        = exigoOrder.City;
                        order.BillingState       = exigoOrder.State;
                        order.BillingPostalCode  = exigoOrder.Zip;
                        order.BillingCountry     = exigoOrder.Country;
                        order.BillingPhone       = exigoOrder.Phone;
                        order.BillingEmail       = exigoOrder.Email;

                        var payment = exigoOrder.Payments.ToList().FirstOrDefault();
                        if (payment != null)
                        {
                            order.PaymentMethod     = payment.PaymentType.ToString();
                            order.BillingStreet1    = payment.BillingAddress1;
                            order.BillingStreet2    = payment.BillingAddress2;
                            order.BillingCity       = payment.BillingCity;
                            order.BillingState      = payment.BillingState;
                            order.BillingPostalCode = payment.BillingZip;
                            order.BillingCountry    = payment.BillingCountry;
                            order.CreditCardType    = payment.CreditCardType.ToString();
                            order.CreditCardOwner   = "";
                            order.CreditCardNumber  = payment.CreditCardNumberDisplay;
                            order.CreditCardExpires = "";
                        }
                        order.Total        = exigoOrder.Total;
                        order.ShippingCost = exigoOrder.ShippingTotal;
                        order.IsOrderSent  = false;
                        order.CreatedDate  = DateTime.Now;
                        order.ModifiedDate = DateTime.Now;

                        foreach (var orderItem in exigoOrder.Details.ToList())
                        {
                            OrderItem item = new OrderItem();
                            item.ItemID    = orderItem.ItemCode;
                            item.ProductID = orderItem.ItemCode;
                            item.Code      = orderItem.ItemCode;
                            item.Name      = orderItem.Description;
                            item.Quantity  = orderItem.Quantity;
                            item.UnitPrice = orderItem.PriceEach;
                            item.Image     = "";
                            item.Weight    = orderItem.WeightEach;
                            order.OrderItems.Add(item);
                        }
                        DB.Orders.Add(order);
                        DB.SaveChanges();
                    }
                }

                //This will now get the next batch of 100
                req.GreaterThanOrderID = gorRes.Orders[gorRes.Orders.Length - 1].OrderID;
                gorRes = api.GetOrders(auth, req);
            }
        }