Example #1
0
 /// <summary>
 /// Registers a job on the job manager
 /// </summary>
 /// <param name="services"></param>
 /// <param name="jobType"></param>
 /// <param name="identifier"></param>
 public static void RegisterJob(this IServiceCollection services,
                                Type jobType,
                                string?identifier = null,
                                InternetAccess requiredNetwork = InternetAccess.None,
                                bool runInForeground           = false,
                                bool?clearJobQueueFirst        = null,
                                params (string Key, object value)[] parameters)
Example #2
0
        private static void MissingImages()
        {
            var checkedImages  = d.ProductsImages.Where(t => t.ImageChecked).ToList();
            var internetAccess = new InternetAccess();
            var siteURL        = d.Settings.Where(t => t.SettingName == "URL").FirstOrDefault().SettingValue;
            var site           = (from s in d.Sites where s.SiteURL == siteURL select s).FirstOrDefault();
            var connection     = internetAccess.FtpConnect(site.FTPServer, 21, site.FTPUsername, site.FTPPass, true);

            connection.SetDirectory(site.ImagesPath);
            var files      = connection.GetDirectoryContents("*.jpeg", CachingFlags.None);
            var filesNames = files.Where(t => !t.Name.Contains("_med") && !t.Name.Contains("_sm")).Select(t => t.Name.Replace(".jpeg", "")).ToList();

            if (checkedImages.Count != filesNames.Count)
            {
                foreach (var file in filesNames)
                {
                    if (checkedImages.Where(t => t.ImageID.ToString() == file).FirstOrDefault() == null)
                    {
                        // удалить по ftp
                        try
                        {
                            connection.DeleteFile(file + ".jpeg");
                            connection.DeleteFile(file + "_med.jpeg");
                            connection.DeleteFile(file + "_sm.jpeg");
                        }
                        catch { }
                    }
                }
                files      = connection.GetDirectoryContents("*.jpeg", CachingFlags.None);
                filesNames = files.Select(t => t.Name.Replace(".jpeg", "")).ToList();
            }
            if (checkedImages.Count != filesNames.Count)
            {
                foreach (var image in checkedImages)
                {
                    if (!filesNames.Contains(image.ImageID.ToString()))
                    {
                        var originalImageName = homeFolder + image.ImageID.ToString();;
                        var ftpPath           = site.ImagesPath + "/" + image.ImageID.ToString();
                        try
                        {
                            connection.UploadFile(originalImageName + ".jpeg", ftpPath + ".jpeg", TransferType.Binary, CachingFlags.None);
                            if (site.ResizeImages && site.SmallBigSize != null)
                            {
                                connection.UploadFile(originalImageName + "_sm.jpeg", ftpPath + "_sm.jpeg", TransferType.Binary, CachingFlags.None);
                            }
                            if (site.ResizeImages && site.MedBigSize != null)
                            {
                                connection.UploadFile(originalImageName + "_med.jpeg", ftpPath + "_med.jpeg", TransferType.Binary, CachingFlags.None);
                            }
                        }
                        catch { }
                    }
                }
            }
            connection.Dispose();
            internetAccess.Dispose();
        }
Example #3
0
        private static void ClearImages()
        {
            Console.WriteLine("Clear Images");
            var di            = new DirectoryInfo(homeFolder);
            var filesCount    = di.GetFiles().Where(t => !t.Name.Contains("_med") && !t.Name.Contains("_sm")).Count();
            var dbImagesCount = d.ProductsImages.Count();

            if (dbImagesCount != filesCount)
            {
                var internetAccess = new InternetAccess();
                var siteURL        = d.Settings.Where(t => t.SettingName == "URL").FirstOrDefault().SettingValue;
                var site           = (from s in d.Sites where s.SiteURL == siteURL select s).FirstOrDefault();
                try
                {
                    var connection = internetAccess.FtpConnect(site.FTPServer, 21, site.FTPUsername, site.FTPPass, true);
                    connection.SetDirectory(site.ImagesPath);
                    var productsImages = d.ProductsImages.Select(t => t.ImageID.ToString()).ToList();
                    var files          = di.GetFiles().Where(t => !t.Name.Contains("_med") && !t.Name.Contains("_sm"));
                    foreach (var file in files)
                    {
                        var imageId = file.Name.Replace(".jpeg", "");
                        if (!productsImages.Contains(imageId))
                        {
                            var medfile = new FileInfo(file.Name.Replace(".jpeg", "_med.jpeg"));
                            var smfile  = new FileInfo(file.Name.Replace(".jpeg", "_sm.jpeg"));
                            file.Delete();
                            medfile.Delete();
                            smfile.Delete();
                            // удалить по ftp
                            try
                            {
                                connection.DeleteFile(imageId + ".jpeg");
                                connection.DeleteFile(imageId + "_med.jpeg");
                                connection.DeleteFile(imageId + "_sm.jpeg");
                            }
                            catch { }
                        }
                    }
                    foreach (var img in d.ProductsImages)
                    {
                        if (!new FileInfo(di.FullName + "\\" + img.ImageID + ".jpeg").Exists)
                        {
                            var product = d.Products.Where(t => t.ImageId == img.ImageID).FirstOrDefault();
                            if (product != null)
                            {
                                product.ImageId = null;
                            }
                            d.ProductsImages.DeleteOnSubmit(img);
                        }
                    }
                    d.SubmitChanges();
                }
                catch { }
            }
        }
Example #4
0
 /// <summary>
 /// Registers a job on the job manager
 /// </summary>
 /// <param name="services"></param>
 /// <param name="jobType"></param>
 /// <param name="identifier"></param>
 public static void RegisterJob(this IServiceCollection services,
                                Type jobType,
                                string?identifier = null,
                                InternetAccess requiredNetwork = InternetAccess.None,
                                bool runInForeground           = false)
 => services.RegisterJob(new JobInfo(jobType, identifier)
 {
     RequiredInternetAccess = requiredNetwork,
     RunOnForeground        = runInForeground,
     Repeat = true
 });
Example #5
0
        private static void ClearImages()
        {
            Console.WriteLine("Clear Images");
            var di = new DirectoryInfo(homeFolder);
            var filesCount = di.GetFiles().Where(t => !t.Name.Contains("_med") && !t.Name.Contains("_sm")).Count();
            var dbImagesCount = d.ProductsImages.Count();
            if (dbImagesCount != filesCount)
            {
                var internetAccess = new InternetAccess();
                var siteURL = d.Settings.Where(t => t.SettingName == "URL").FirstOrDefault().SettingValue;
                var site = (from s in d.Sites where s.SiteURL == siteURL select s).FirstOrDefault();
                try
                {
                    var connection = internetAccess.FtpConnect(site.FTPServer, 21, site.FTPUsername, site.FTPPass, true);
                    connection.SetDirectory(site.ImagesPath);
                    var productsImages = d.ProductsImages.Select(t=>t.ImageID.ToString()).ToList();
                    var files = di.GetFiles().Where(t => !t.Name.Contains("_med") && !t.Name.Contains("_sm"));
                    foreach (var file in files)
                    {
                        var imageId = file.Name.Replace(".jpeg", "");
                        if (!productsImages.Contains(imageId))
                        {
                            var medfile = new FileInfo(file.Name.Replace(".jpeg", "_med.jpeg"));
                            var smfile = new FileInfo(file.Name.Replace(".jpeg", "_sm.jpeg"));
                            file.Delete();
                            medfile.Delete();
                            smfile.Delete();
                            // удалить по ftp
                            try
                            {
                                connection.DeleteFile(imageId + ".jpeg");
                                connection.DeleteFile(imageId + "_med.jpeg");
                                connection.DeleteFile(imageId + "_sm.jpeg");
                            }
                            catch { }

                        }
                    }
                    foreach (var img in d.ProductsImages)
                    {
                        if (!new FileInfo(di.FullName + "\\" + img.ImageID + ".jpeg").Exists)
                        {
                            var product = d.Products.Where(t => t.ImageId == img.ImageID).FirstOrDefault();
                            if (product != null)
                                product.ImageId = null;
                            d.ProductsImages.DeleteOnSubmit(img);
                        }
                    }
                    d.SubmitChanges();
                }
                catch { }
            }
        }
Example #6
0
        static NetworkType ToNative(InternetAccess access)
        {
            switch (access)
            {
            case InternetAccess.Any:
                return(NetworkType.Connected);

            case InternetAccess.Unmetered:
                return(NetworkType.Unmetered);

            case InternetAccess.None:
            default:
                return(NetworkType.NotRequired);
            }
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.LoginLayout);

            FindElements();
            SetFonts();
            if (InternetAccess.CheckNetworkConnection())
            {
                var          names   = UserBussines.GetAll().Select(q => q.UserName).ToList();
                ArrayAdapter adapter = new ArrayAdapter <string>(this, Android.Resource.Layout.SimpleSpinnerItem, names);
                txtUserName.Adapter = adapter;
            }

            btnLogin.Click += BtnLogin_Click;
        }
Example #8
0
 /// <summary>
 /// Registers a job on the job manager
 /// </summary>
 /// <param name="services"></param>
 /// <param name="jobType"></param>
 /// <param name="identifier"></param>
 public static void RegisterJob(this IServiceCollection services,
                                Type jobType,
                                string?identifier = null,
                                InternetAccess requiredNetwork = InternetAccess.None)
 => services.RegisterPostBuildAction(async sp =>
 {
     // what if permission fails?
     var jobs   = sp.GetService <IJobManager>();
     var access = await jobs.RequestAccess();
     if (access == AccessState.Available)
     {
         await jobs.Schedule(new JobInfo(jobType, identifier)
         {
             RequiredInternetAccess = requiredNetwork,
             Repeat = true
         });
     }
 });
        private ReturnedSaveFuncInfo CheckValidation()
        {
            var res = new ReturnedSaveFuncInfo();

            try
            {
                txtUserName.Error = null;
                txtPassword.Error = null;
                if (!InternetAccess.CheckNetworkConnection())
                {
                    res.AddReturnedValue(ReturnedState.Error,
                                         "لطفا دسترسی خود به اینترنت را بررسی کرده و مجددا تلاش نمایید");
                    return(res);
                }
                if (string.IsNullOrEmpty(txtUserName.Text))
                {
                    var msg = "لطفا نام کاربری را وارد نمایید";
                    txtUserName.Error = msg;
                    res.AddReturnedValue(ReturnedState.Error, msg);
                }

                if (res.HasError)
                {
                    return(res);
                }

                if (string.IsNullOrEmpty(txtPassword.Text))
                {
                    var msg = "لطفا کلمه عبور را وارد نمایید";
                    txtPassword.Error = msg;
                    res.AddReturnedValue(ReturnedState.Error, msg);
                }
            }
            catch (Exception ex)
            {
                WebErrorLog.ErrorInstence.StartErrorLog(ex);
                res.AddReturnedValue(ex);
            }

            return(res);
        }
Example #10
0
        public static async Task CreateAsync(UserHelpers usersInterface, InternetAccess internetCheck, string pin = null)
        {
            _internetCheck = internetCheck;

            if (!string.IsNullOrEmpty(pin))
            {
                var result = await Users.TryGetUserAsync(_conn, pin);

                if (string.IsNullOrEmpty(result))
                {
                    throw new NoUserFound();
                }

                await usersInterface.CreateLoggedUserAsync(result);

                _user = result;
            }
            else
            {
                _user = await Users.ReadLoggedUserAsync() ?? throw new UserReadFailed();
            }
        }
Example #11
0
 static NetworkType ToNative(InternetAccess access) => access switch
 {
Example #12
0
        private static void MissingImages()
        {
            var checkedImages = d.ProductsImages.Where(t => t.ImageChecked).ToList();
            var internetAccess = new InternetAccess();
            var siteURL = d.Settings.Where(t => t.SettingName == "URL").FirstOrDefault().SettingValue;
            var site = (from s in d.Sites where s.SiteURL == siteURL select s).FirstOrDefault();
            var connection = internetAccess.FtpConnect(site.FTPServer, 21, site.FTPUsername, site.FTPPass, true);
            connection.SetDirectory(site.ImagesPath);
            var files = connection.GetDirectoryContents("*.jpeg", CachingFlags.None);
            var filesNames = files.Where(t => !t.Name.Contains("_med") && !t.Name.Contains("_sm")).Select(t => t.Name.Replace(".jpeg", "")).ToList();

            if (checkedImages.Count != filesNames.Count)
            {
                foreach (var file in filesNames)
                {
                    if (checkedImages.Where(t => t.ImageID.ToString() == file).FirstOrDefault() == null)
                    {
                        // удалить по ftp
                        try
                        {
                            connection.DeleteFile(file + ".jpeg");
                            connection.DeleteFile(file + "_med.jpeg");
                            connection.DeleteFile(file + "_sm.jpeg");
                        }
                        catch { }
                    }
                }
                files = connection.GetDirectoryContents("*.jpeg", CachingFlags.None);
                filesNames = files.Select(t => t.Name.Replace(".jpeg", "")).ToList();
            }
            if (checkedImages.Count != filesNames.Count)
            {
                foreach (var image in checkedImages)
                {
                    if (!filesNames.Contains(image.ImageID.ToString()))
                    {
                        var originalImageName = homeFolder + image.ImageID.ToString(); ;
                        var ftpPath = site.ImagesPath + "/" + image.ImageID.ToString();
                        try
                        {
                            connection.UploadFile(originalImageName + ".jpeg", ftpPath + ".jpeg", TransferType.Binary, CachingFlags.None);
                            if (site.ResizeImages && site.SmallBigSize != null)
                            {
                                connection.UploadFile(originalImageName + "_sm.jpeg", ftpPath + "_sm.jpeg", TransferType.Binary, CachingFlags.None);
                            }
                            if (site.ResizeImages && site.MedBigSize != null)
                            {
                                connection.UploadFile(originalImageName + "_med.jpeg", ftpPath + "_med.jpeg", TransferType.Binary, CachingFlags.None);
                            }
                        }
                        catch { }
                    }
                }
            }
            connection.Dispose();
            internetAccess.Dispose();
        }
Example #13
0
        public void Execute(BasicHttpBinding binding, EndpointAddress endpoint)
        {
            //try
            //{
            bool modified = false;

            using (CentralCenterSoapClient centralCenter = CreateClient(binding, endpoint))
            {
                if (centralCenter.IsCompatibleClient(App.VersionStr()))
                {
                    CIV.CentralCenterClient.CentralCenterServiceReference.InternetAccessBO[] updatedAccess = centralCenter.GetInternetAccess();

                    if (updatedAccess != null)
                    {
                        InternetAccess oldAccess;
                        InternetAccess newAccess;

                        for (int i = 0; i < updatedAccess.Count(); i++)
                        {
                            newAccess = new InternetAccess()
                            {
                                Id            = updatedAccess[i].Id,
                                MaxCost       = updatedAccess[i].MaxCost,
                                OverCharge    = updatedAccess[i].OverCharge,
                                TotalCombined = updatedAccess[i].TotalCombined,
                                UploadSpeed   = updatedAccess[i].UploadSpeed,
                                DownloadSpeed = updatedAccess[i].DownloadSpeed,
                                LastUpdate    = updatedAccess[i].LastUpdate
                            };
                            newAccess.Name[SupportedLanguages.French]  = updatedAccess[i].NameFr;
                            newAccess.Name[SupportedLanguages.English] = updatedAccess[i].NameEn;

                            oldAccess = InternetAccesList.Instance.Access.SingleOrDefault(p => p.Id == newAccess.Id);

                            // Nouvelle accès
                            if (oldAccess == null)
                            {
                                modified = true;
                                InternetAccesList.Instance.Access.Add(newAccess);
                            }

                            // Mise à jour d'un accès
                            else if (oldAccess.LastUpdate.CompareTo(updatedAccess[i].LastUpdate) != 0)
                            {
                                modified                = true;
                                oldAccess.MaxCost       = newAccess.MaxCost;
                                oldAccess.OverCharge    = newAccess.OverCharge;
                                oldAccess.TotalCombined = newAccess.TotalCombined;
                                oldAccess.UploadSpeed   = newAccess.UploadSpeed;
                                oldAccess.DownloadSpeed = newAccess.DownloadSpeed;
                                oldAccess.Name          = newAccess.Name;
                                oldAccess.LastUpdate    = newAccess.LastUpdate;
                            }
                        }
                    }
                    if (modified)
                    {
                        InternetAccesList.Instance.Save();
                        InternetAccesList.Reload();
                    }
                }
                else if (IsNotCompatibleClient != null)
                {
                    IsNotCompatibleClient(this, null);
                }
            }
            //}
            //catch
            //{
            //    // Si ça plante, on met pas à jours
            //    return new InternetAccesList() { Publication = DateTime.Now.AddYears(-1)};
            //}
        }
Example #14
0
        public LoginPage(InternetAccess internetCheck)
        {
            InitializeComponent();

            _internetCheck = internetCheck;
        }