Example #1
0
 public OrderFilePositionViewModel(OrderFilePosition orderPosition)
 {
     this.orderPosition = orderPosition;
 }
        public void AddFile(object o)
        {
            var filedialog = new OpenFileDialog();
            var isOk       = filedialog.ShowDialog();

            if (isOk != true)
            {
                return;
            }
            var    fileName = filedialog.FileName;
            string fileNewName;

            try
            {
                System.IO.File.Copy(fileName,
                                    Path.Combine(System.IO.Directory.GetCurrentDirectory(), this.order.ToString(),
                                                 Path.GetFileNameWithoutExtension(fileName) + Path.GetExtension(fileName)));
                fileNewName = Path.Combine(System.IO.Directory.GetCurrentDirectory(),
                                           this.order.ToString(),
                                           Path.GetFileNameWithoutExtension(fileName) + Guid.NewGuid() + Path.GetExtension(fileName));
            }
            catch (DirectoryNotFoundException ex)
            {
                System.IO.Directory.CreateDirectory(Path.Combine(System.IO.Directory.GetCurrentDirectory(),
                                                                 this.order.ToString()));
                System.IO.File.Copy(fileName,
                                    Path.Combine(System.IO.Directory.GetCurrentDirectory(), this.order.ToString(),
                                                 Path.GetFileNameWithoutExtension(fileName) + Path.GetExtension(fileName)));
                fileNewName = Path.Combine(System.IO.Directory.GetCurrentDirectory(),
                                           this.order.ToString(),
                                           Path.GetFileNameWithoutExtension(fileName) + Path.GetExtension(fileName));
            }
            catch (IOException ex)
            {
                var nw = Guid.NewGuid().ToString();
                System.IO.File.Copy(fileName,
                                    Path.Combine(System.IO.Directory.GetCurrentDirectory(), this.order.ToString(),
                                                 Path.GetFileNameWithoutExtension(fileName) + nw + Path.GetExtension(fileName)));
                fileNewName = Path.Combine(System.IO.Directory.GetCurrentDirectory(),
                                           this.order.ToString(),
                                           Path.GetFileNameWithoutExtension(fileName) + nw + Path.GetExtension(fileName));
            }
            var max             = this.orderFiles?.ToList().Count + 1 ?? 1;
            var newFilePosition = new OrderFilePosition {
                Name = fileNewName, Number = max, OrderGuid = this.order.OrderGuid, OrderId = this.order.OrderId
            };

            if (this.order.FilePositions != null)
            {
                this.order.FilePositions.Add(newFilePosition);
                var orderFilePositionViewModels = this.orderFiles;
                if (orderFilePositionViewModels != null)
                {
                    orderFilePositionViewModels.Add(new OrderFilePositionViewModel(newFilePosition));
                }
            }
            else
            {
                this.order.FilePositions = new List <OrderFilePosition>();
                this.order.FilePositions.Add(newFilePosition);
                var orderFilePositionViewModels = this.orderFiles;
                if (orderFilePositionViewModels != null)
                {
                    orderFilePositionViewModels.Add(new OrderFilePositionViewModel(newFilePosition));
                }
            }
            //this.orderFilePositionsViews.Add(new OrderFilePositionViewModel(newFilePosition));
            this.OnPropertyChanged(nameof(orderFiles));

            this.SaveChanges();

            this.OnPropertyChanged(nameof(OrderFiles));
            this.OnPropertyChanged(nameof(orderFiles));
        }