public static bool DownloadTenderingFile(int tenderingId, TenderingIndex docIndex, int?contractorId, string version, Grid layoutRoot, int?advertisementId = null, int?meetingId = null, int?warrantyId = null)
        {
            int docid = DataManagement.RetrieveTenderingDocumentId(docIndex);

            if (docid == -1)
            {
                return(false);
            }
            layoutRoot.Children.Add(busy);
            Task <bool> .Factory.StartNew(delegate
            {
                FileDataObject t = DataManagement.RetrieveTenderingFile(tenderingId, docid, contractorId, advertisementId, meetingId, warrantyId);
                if (t == null)
                {
                    return(false);
                }
                OpenFileHandler.OpenFileFromByte(t.FileContent, t.FileName);
                t = null;
                GC.Collect();
                return(true);
            }).ContinueWith(Pre =>
            {
                layoutRoot.Children.Remove(busy);
                if (!Pre.Result)
                {
                    ErrorHandler.ShowErrorMessage(ErrorHandler.ErrorMessages["NoFile"]);
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());

            return(true);
        }
        public static bool HasTenderingFile(int tenderingId, TenderingIndex docIndex, int?contractorId, string version, Grid layoutRoot, int?advertisementId = null, int?meetingId = null)
        {
            int docid = DataManagement.RetrieveTenderingDocumentId(docIndex);

            if (docid == -1)
            {
                return(false);
            }
            return(DataManagement.HasTenderingFile(tenderingId, docid, contractorId, advertisementId, meetingId));
        }
Beispiel #3
0
        private void page_Loaded(object sender, RoutedEventArgs e)
        {
            switch (MeetingType)
            {
            case MeetingTypes.PacketExtendingMeeting:
                applicant         = TenderingIndex.ExtendMeetingApplicant;
                committee         = TenderingIndex.ExtendMeetingCommittee;
                meeting           = TenderingIndex.ExtendMeeting;
                PageTitle.Content = "جلسه تمدید تسلیم پاکات";
                break;

            case MeetingTypes.DocExtendingMeeting:
                applicant         = TenderingIndex.ExtendDocMeetingApplicant;
                committee         = TenderingIndex.ExtendDocMeetingCommittee;
                meeting           = TenderingIndex.ExtendDocMeeting;
                PageTitle.Content = "جلسه تمدید ارائه اسناد";
                break;
            }
            MeetingList           = DataManagement.RetrieveMeetings(CurrentTendering, MeetingType);
            MC.ItemsSource        = MeetingList;
            this.DataContext      = CurrentMeeting;
            Header.CurrentRequest = DataManagement.RetrieveTenderingContractorRequest(CurrentTendering);
            SaveBtn.IsEnabled     = false;
        }
        public static bool DeleteTenderingFile(int tenderingId, TenderingIndex docIndex, int?contractorId, string version, Grid layoutRoot, int?advertisementId = null, int?meetingId = null, int?warrantyId = null)
        {
            if (!HasTenderingFile(tenderingId, docIndex, contractorId, version, layoutRoot, advertisementId, meetingId) && warrantyId == null)
            {
                ErrorHandler.ShowErrorMessage("فایل ثبت شده وجود ندارد!ابتدا فایل را بارگذاری کنید");
                return(false);
            }
            if (!UserData.CurrentAccessRight.TenderingDelete)
            {
                ErrorHandler.ShowErrorMessage("امکان انجام این عملیات وجود ندارد");
                return(false);
            }
            int docid = DataManagement.RetrieveTenderingDocumentId(docIndex);

            if (docid == -1)
            {
                return(false);
            }
            if (ErrorHandler.PromptUserForPermision(ErrorHandler.ErrorMessages["Prompt"]) == MessageBoxResult.No)
            {
                return(false);
            }
            layoutRoot.Children.Add(busy);
            Task.Factory.StartNew(delegate
            {
                DataManagement.DeleteTenderingFile(tenderingId, docid, contractorId, advertisementId, meetingId, warrantyId);
            }).ContinueWith(delegate
            {
                layoutRoot.Children.Remove(busy);
                if (TransactionFinished != null)
                {
                    TransactionFinished();
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());
            return(true);
        }
        public static bool UploadTenderingFile(int tenderingId, TenderingIndex docIndex, int?contractorId, string version, Grid layoutRoot, int?advertisementId = null, int?meetingId = null, int?warrantyId = null)
        {
            TenderingDocumentFile         f   = new TenderingDocumentFile();
            TenderingDocumentFileRelation rel = new TenderingDocumentFileRelation();

            rel.ContractorId        = contractorId;
            rel.TenderingDocumentId = DataManagement.RetrieveTenderingDocumentId(docIndex);
            if (rel.TenderingDocumentId == -1)
            {
                return(false);
            }
            rel.TenderingId     = tenderingId;
            rel.AdvertisementId = advertisementId;
            rel.MeetingId       = meetingId;
            rel.WarrantyId      = warrantyId;
            f.Version           = version;
            f.AttachedDate      = DateTime.Now;
            f.FileGuid          = Guid.NewGuid();
            string fileLocation = OpenFileHandler.OpenFileToUpload();

            if (fileLocation == null)
            {
                return(false);
            }
            layoutRoot.Children.Add(busy);
            Task <bool> .Factory.StartNew(delegate
            {
                f.FileContent = OpenFileHandler.GetFileFromLocation(fileLocation);
                f.Name        = System.IO.Path.GetFileName(fileLocation);

                if (DataManagement.AddTenderingFile(f) != -1)
                {
                    rel.TenderingDocumentFileId = f.TenderingDocumentFileId;
                    if (DataManagement.AddTenderingFileRelation(rel) == -1)
                    {
                        return(false);
                    }
                    f = null;
                    GC.Collect();
                    return(true);
                }
                else
                {
                    return(false);
                }
            }).ContinueWith(prev =>
            {
                layoutRoot.Children.Remove(busy);
                bool result = prev.Result;
                if (result)
                {
                    ErrorHandler.NotifyUser("فایل با موفقیت ثبت شد.");
                    if (TransactionFinished != null)
                    {
                        TransactionFinished();
                    }
                }
                else
                {
                    ErrorHandler.ShowErrorMessage("ثبت فایل امکان پذیر نبود لطفا دوباره سعی کنید.");
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());

            return(true);
        }