Пример #1
0
        public ActionResult Create(CreateProductViewModel viewModel, HttpPostedFileBase mainImage, IEnumerable <HttpPostedFileBase> images)
        {
            if (ModelState.IsValid)
            {
                var product = new Product();
                product.Code        = viewModel.Code;
                product.Name        = viewModel.Name;
                product.Description = viewModel.Description;
                product.Price       = viewModel.Price;
                product.Created_at  = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

                db.Products.Add(product);

                var imagesToDownload = new List <HttpPostedFileBase>();

                if (mainImage != null)
                {
                    string       relativePathToImage = Helper.GetRelativePathForResource(mainImage.FileName);
                    ProductImage productMainImage    = Factories.ProductImageFactory.Create(product.Id, relativePathToImage, true);
                    db.ProductImages.Add(productMainImage);
                    imagesToDownload.Add(mainImage);
                }

                foreach (var image in images.Where(x => x != null))
                {
                    string       relativePathToImage = Helper.GetRelativePathForResource(image.FileName);
                    ProductImage productImage        = Factories.ProductImageFactory.Create(product.Id, relativePathToImage, false);
                    db.ProductImages.Add(productImage);
                    imagesToDownload.Add(image);
                }

                //sukuriam dar viena sarasa, kad klaidos atveju zinotume, kokias nuotraukas reikia istrint
                var downloadedImages = new List <HttpPostedFileBase>();
                try
                {
                    foreach (var img in imagesToDownload)
                    {
                        FileWorker.DownloadImage(img);
                        downloadedImages.Add(img);
                    }
                }
                catch (FileDownloadException)
                {
                    foreach (var img in downloadedImages)
                    {
                        string relativePathToImage = Helper.GetRelativePathForResource(img.FileName);
                        FileWorker.DeleteFile(relativePathToImage);
                    }

                    ModelState.AddModelError("Error", "Klaida išsaugant paveikslėlį.");
                    return(View(viewModel));
                }

                try
                {
                    db.SaveChanges();
                }
                catch (System.Data.Entity.Infrastructure.DbUpdateException)
                {
                    ModelState.AddModelError("Error", "Prekė su tokiu kodu jau egzistuoja.");
                    return(View(viewModel));
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("Error", ex);
                    return(View(viewModel));
                }

                return(RedirectToAction("GetProductsListForAdmin", new { isPartial = false, query = "", currentPage = 1 }));
            }

            return(View(viewModel));
        }
Пример #2
0
        private void SaveFile()
        {
            var dialog = new SaveFileDialog {
                Filter = "Views (*.csv)|*.csv"
            };

            if (dialog.ShowDialog() == true)
            {
                var constraints = new List <Constraint>();
                int i           = 0;
                foreach (var item in ConstraintItems)
                {
                    constraints.Add(new Constraint(i, item.SelectedVariable1, item.SelectedComparator, item.SelectedVariable2));
                    i++;
                }

                var fileName = dialog.FileName;
                if (File.Exists(fileName))
                {
                    FileWorker.DeleteFile(fileName);
                }
                var file = FileWorker.GetInstance(fileName, true);
                var max  = _allVariables.Count;
                if (_allDomains.Count > max)
                {
                    max = _allDomains.Count;
                }
                if (constraints.Count > max)
                {
                    max = constraints.Count;
                }

                for (i = 0; i < max; i++)
                {
                    var builder = new StringBuilder();
                    if (_allVariables.Count > i)
                    {
                        builder.Append(_allVariables[i].Name);
                    }
                    builder.Append(";");
                    if (_allDomains.Count > i)
                    {
                        builder.Append(_allDomains[i].Name);
                    }
                    builder.Append(";");
                    if (constraints.Count > i)
                    {
                        builder.Append(constraints[i].X.Name);
                        builder.Append(";");
                        builder.Append(constraints[i].Comparator);
                        builder.Append(";");
                        builder.Append(constraints[i].Y.Name);
                        builder.Append(";");
                    }
                    else
                    {
                        builder.Append(";;;");
                    }

                    if (i == 0)
                    {
                        builder.Append(IsPairwiseDisjunct);
                    }
                    file.WriteLine(builder.ToString());
                }
            }
        }
Пример #3
0
        static void Main(string[] args)
        {
            var dir = FileWorker.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly( ).Location);

            _logger = new Logger( );
            _logger.Open(string.Format(@"{0}\log\{1}.log", dir, DateTime.Now.ToString("yyyy'-'MM'-'dd")));
            _logger.Write("------------------------------");
            _logger.Write("Opening...");
            Arguments arguments = GetArguments(args);

            if (arguments == null)
            {
                Exit( );
                return;
            }
            if (string.IsNullOrEmpty(arguments.email) || string.IsNullOrEmpty(arguments.web))
            {
                PrintCommand( );
                Exit( );
                return;
            }
            if (Environment.UserInteractive)
            {
                SetConsoleCtrlHandler(new HandlerRoutine(ConsoleCtrlCheck), true);
                Console.WriteLine("CTRL+C,CTRL+BREAK or suppress the application to exit");
            }

            Thread th = new Thread(() => {
                Task.Run(async( ) => {
                    try {
                        //6:10 AM 9/14/2018 Rajib
                        //IConfig config = AcmeWrapper.GetConfig( "*****@*****.**" );
                        //IAcmeWrapper acmeWrapper = new AcmeWrapper( config, "*.tripecosys.com", CancellationToken.None );
                        IConfig config = AcmeWrapper.GetConfig(email: arguments.email, dir: dir);
                        if (config == null)
                        {
                            _logger.Write(string.Format("No config found for email==>{0}", arguments.email));
                            goto EXIT;
                        }
                        using (IAcmeWrapper acmeWrapper = new AcmeWrapper(config: config, web: arguments.web, acmeApiServer: arguments.acmeApiServer ?? AcmeWrapper.DefaultAcmeApiServer, logger: _logger, ct: _cancellationTokenSource.Token)) {
                            X509Certificate2 cert  = null;
                            IIISWrapper iISWrapper = new IISWrapper( );
                            if (arguments.forceRenew == false)
                            {
                                _logger.Write("Check if valid Certificate exists for {0}", acmeWrapper.domain.ZoneName);
                                if (acmeWrapper.ExistsCertificate( ))
                                {
                                    ICertificate cer = acmeWrapper.GetCertificate( );
                                    if (!cer.isExpired && cer.status)
                                    {
                                        var(status, resp) = acmeWrapper.IsValidConfig(logging: true);
                                        if (!status)
                                        {
                                            goto EXIT;
                                        }
                                        cert = cer.Cert;
                                        _logger.Write("A valid Certificate found for {0}; Cert Serial:: {1}", acmeWrapper.domain.ZoneName, cert.SerialNumber);
                                    }
                                }
                            }
                            if (cert == null)
                            {
                                IOrderResult orderResult = await acmeWrapper.CreateOrRenewCert(forceRenew: arguments.forceRenew, rec: acmeWrapper.MAX_TRY);
                                if (orderResult.success != true)
                                {
                                    goto EXIT;
                                }
                                if (orderResult.taskType == TaskType.DOWNLOAD_CERT)
                                {
                                    ICertificate certificate = await acmeWrapper.CreateCertificate( );
                                    if (certificate.status == false)
                                    {
                                        goto EXIT;
                                    }
                                    cert = certificate.Cert;
                                    if (!iISWrapper.InstallCertificate(certificate: cert, zoneName: acmeWrapper.domain.ZoneName, oldCertificate: orderResult.oldCertificate, storeName: StoreName.My, logger: _logger))
                                    {
                                        goto EXIT;
                                    }
                                }
                                else if (orderResult.taskType == TaskType.INSTALL_CERT)
                                {
                                    cert = orderResult.oldCertificate;
                                    if (!iISWrapper.InstallCertificate(certificate: cert, zoneName: acmeWrapper.domain.ZoneName, storeName: StoreName.My, logger: _logger))
                                    {
                                        goto EXIT;
                                    }
                                }
                                else
                                {
                                    goto EXIT;
                                }
                                orderResult = null;
                            }
                            else
                            {
                                if (!iISWrapper.InstallCertificate(certificate: cert, zoneName: acmeWrapper.domain.ZoneName, storeName: StoreName.My, logger: _logger))
                                {
                                    goto EXIT;
                                }
                            }

                            _logger.Write("Bind Certificate for {0}", acmeWrapper.domain.ZoneName);
                            IIISWrapperResponse iSWrapperResponse = iISWrapper.BindCertificate(iISSettings: new IISWrapperSettings {
                                SiteName             = acmeWrapper.domain.ZoneName,
                                CertificateStoreName = "My",
                                AppPool         = acmeWrapper.domain.IISSettings.AppPool,
                                CertificateHash = cert.GetCertHash( ),
                                Site            = acmeWrapper.domain.IISSettings.Site,
                                ZoneName        = acmeWrapper.domain.ZoneName
                            }, logger: _logger);
                            if (iSWrapperResponse.Error)
                            {
                                goto EXIT;
                            }
                            _logger.Write("Certificate process completed for {0}", acmeWrapper.domain.ZoneName);
                            IWinConfig winConfig = acmeWrapper.gConfig.winConfig;
                            string batAbsolute   = string.Concat(acmeWrapper.domainDir, "ScheduleRunner.bat");
                            if (FileWorker.ExistsFile(batAbsolute))
                            {
                                FileWorker.DeleteFile(batAbsolute);
                            }
                            _logger.Write("Creating .bat file for Schedule runner for {0}", acmeWrapper.domain.ZoneName);
                            string bat = string.Format("rem Auto Generated on {0}\r\n", DateTime.Now.ToString( ));
                            bat       += string.Format("dotnet LetsEncryptWrapper.dll -e {0} -w {1} -fr Y", config.Email, acmeWrapper.domain.DomainName);
                            FileWorker.WriteFile(bat, batAbsolute);
                            _logger.Write(".bat file creation completed for Schedule runner for {0}", acmeWrapper.domain.ZoneName);

                            _logger.Write("Register new Task Schedule for Renew the Certificate for {0}", acmeWrapper.domain.ZoneName);

                            TaskSchedule.Create(settings: new ScheduleSettings {
                                TaskName        = string.Format(@"\LetsEncryptWrapper\SSL\{0}", acmeWrapper.domain.ZoneName),
                                TriggerDateTime = cert.NotAfter, /**DateTime.Now.AddDays( 1 ),*/
                                Description     = string.Format("Register new Task Schedule for Renew the Certificate for {0}; Cert Serail::{1}", acmeWrapper.domain.ZoneName, cert.SerialNumber),
                                ActionPath      = batAbsolute,   //@"dotnet LetsEncryptWrapper.dll",
                                Arguments       = null,          //string.Format( "-e {0} -w {1} -fy Y", config.Email, acmeWrapper.domain.DomainName ),
                                UserName        = winConfig.WinUser,
                                Password        = winConfig.WinPassword,
                                StartIn         = dir
                            }, logger: _logger);

                            _logger.Write("Task Schedule Registration completed for {0}", acmeWrapper.domain.ZoneName);
                        }
                        goto EXIT;
                    } catch (Exception e) {
                        _logger.Write(e.Message);
                        _logger.Write(e.StackTrace);
                        goto EXIT;
                    }
                    EXIT:
                    //_logger.GetCurLog( );
                    //Send Confirmation
                    Exit( );
                }).Wait( );
            });

            th.SetApartmentState(ApartmentState.STA);
            th.Start( );
            do
            {
                Thread.Sleep(1000);
            } while (!_cancellationTokenSource.IsCancellationRequested);
            th.Join( );
            Environment.Exit(Environment.ExitCode);
            return;
        }