private void Save()
        {
            Auction      = AuctionPrimaryDataVM.Auction;
            Auction.Date = DatesRegulationVM.Order.Auction.Date;

            if (Auction.Id == 0)
            {
                if (string.IsNullOrEmpty(Auction.Number))
                {
                    MessagesService.Show("Сохранение аукциона", "Аукцион не может быть сохранен, так как не имеет номера");
                    return;
                }

                Auction.OwnerId      = 1;
                Auction.signStatusId = 1;

                try {
                    Auction.RegulationId = DatesRegulationVM.CreateRegulation();
                } catch { MessagesService.Show("Сохранение аукциона", "Произошла ошибка при сохранении дат"); return; }

                try {
                    Auction.FilesListId = DocumentService.CreateFilesList("Файлы аукциона №" + Auction.Number);
                } catch { MessagesService.Show("Сохранение аукциона", "Произошла ошибка во время занесения данных аукциона"); return; }

                try {
                    Auction.Id = AuctionService.CreateAuction(Auction);
                } catch { MessagesService.Show("Сохранение аукциона", "Произошла ошибка при сохранении аукциона"); return; }

                if (OrderDetailsVM.Order.id != 0)
                {
                    // Update order
                }
                else
                {
                    // Create order
                    order.customerid = Auction.CustomerId;
                    order.auctionId  = Auction.Id;
                    order.statusId   = 4;
                    order.Number     = Auction.Number;
                    order.siteId     = Auction.SiteId;
                    order.Date       = DatesRegulationVM.Order.Date;

                    try {
                        order.filesListId = DocumentService.CreateFilesList("Файлы заявки №" + order.Number);
                    } catch { MessagesService.Show("Сохранение аукциона", "Произошла ошибка во время занесения данных заявки"); return; }

                    try {
                        order.id = AuctionService.CreateOrder(order);
                    } catch { MessagesService.Show("Сохранение аукциона", "Произошла ошибка при создании заявки"); return; }
                }

                Init();
            }
            else
            {
                try {
                    DatesRegulationVM.UpdateRegulation(Auction.RegulationId);
                } catch { MessagesService.Show("Сохранение аукциона", "Произошла ошибка при сохранении дат"); return; }

                try {
                    AuctionService.UpdateAuction(Auction);
                } catch { MessagesService.Show("Сохранение аукциона", "Произошла ошибка при сохранении аукциона"); return; }
            }

            MessagesService.Show("Сохранение аукциона", "Аукциона успешно сохранен");
        }