示例#1
0
 private void ReceiveLetter(SendLetter message)
 {
     if (message.Letter.Equals(CurrentLetter))
     {
         SelectLetter();
     }
 }
        public FileResult Download(Guid id)
        {
            SendLetterManager sendLetterManager = new SendLetterManager();
            SendLetter        sendLetter        = new SendLetter();

            sendLetter = sendLetterManager.Read(id);
            byte[] file = sendLetter?.LetterFileContent;
            if (file != null && file.Length > 0)
            {
                string fileName = id + ".pdf";
                return(File(file, System.Net.Mime.MediaTypeNames.Application.Octet, fileName));
            }
            else
            {
                return(null);
            }
        }
示例#3
0
        private void btn_Send_Click(object sender, EventArgs e)
        {
            if (Refrencetype == 1)
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    List <DataGridView> chek_User = new List <DataGridView>();
                    foreach (DataGridViewRow row in dgvShowUser.Rows)
                    {
                        //Insertsenddate();
                        Refrences rf = new Refrences();


                        if (Convert.ToBoolean(row.Cells["Select"].Value) == true)
                        {
                            rf.LetterID             = this.GetLetterID;
                            rf.UserID               = this.refrencekonande;
                            rf.RefrenceUserID       = this.refrenceshode;
                            rf.ReciveRefrenceUserID = Convert.ToInt32(row.Cells["UserID"].Value);
                            rf.CreateDate           = PublicVariebale.ToDayDate;
                            DBCommon.Context.Refrences.Add(rf);
                            DBCommon.Context.SaveChanges();
                        }
                    }
                    DBCommon.Context.SaveChanges();
                    ts.Complete();
                    MessageBox.Show("ارجاع نامه با موفقیت انجام شد", "موفقیت", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
            }
            else
            {
                using (TransactionScope ts = new TransactionScope())
                {
                    ///Exit to Draft
                    ///
                    var query_Update = (from u in DBCommon.Context.Letters where u.LetterID == this.GetLetterID select u).SingleOrDefault();
                    query_Update.DraftyType     = 2;
                    query_Update.SendLetterDate = PublicVariebale.ToDayDate;
                    DBCommon.Context.SaveChanges();
                    /////
                    ///
                    List <DataGridView> chek_User = new List <DataGridView>();
                    foreach (DataGridViewRow row in dgvShowUser.Rows)
                    {
                        //Insertsenddate();
                        SendLetter sl = new SendLetter();


                        if (Convert.ToBoolean(row.Cells["Select"].Value) == true)
                        {
                            sl.UserID   = Convert.ToInt32(row.Cells["UserID"].Value);
                            sl.LetterID = this.GetLetterID;
                            sl.ReadType = 1;
                            sl.Status   = 1;
                            DBCommon.Context.SendLetter.Add(sl);
                        }
                    }
                    DBCommon.Context.SaveChanges();
                    ts.Complete();
                    MessageBox.Show("ارسال نامه با موفقیت انجام شد", "موفقیت", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Close();
                }
            }
        }
        public ActionResult Edit(EditOutgoingLettersViewModel editOutgoingLettersViewModel)
        {
            SendLetterManager sendLetterManager = new SendLetterManager();
            SendLetter        oldLetter         = sendLetterManager.Read(editOutgoingLettersViewModel.sendLetter.Id);

            #region temp

            TempSendLetterManager tempSendLetterManager = new TempSendLetterManager();
            //Get Letter before Edit
            SendLetter sendletter = tempSendLetterManager.ReturnReceivedLetter(editOutgoingLettersViewModel.sendLetter.Id);
            if (sendletter == null)
            {
                throw new Exception("نامه مورد نظر یافت نگردید.");
            }
            TempSendLetter tempSendLetter = new TempSendLetter
            {
                User                        = sendletter.User,
                Recievers                   = sendletter?.Recievers ?? null,
                ParentType                  = sendletter.ParentType,
                AppendageContent            = sendletter.AppendageContent,
                LetterFileContent           = sendletter.LetterFileContent,
                ArchiveDateTime             = sendletter.ArchiveDateTime,
                LetterDateTime              = sendletter.LetterDateTime,
                ModifyDateTime              = sendletter.LastModifyDateTime,
                Assortment                  = sendletter.Assortment,
                Cases                       = sendletter.Cases,
                RowNumber                   = sendletter.RowNumber,
                Description                 = sendletter.Description,
                SendLetter                  = sendletter,
                ParentReceivedLetterOutTemp = sendletter.ParentReceivedLetterOut,
                ParentSendLetter            = sendletter.ParentSendLetter,
                TempSendLetterFiles         = new List <TempSendLetterFile>(),
                Appendages                  = new List <TempSendAppendage>(),
                LetterFileAppendageContent  = sendletter.LetterFileAppendageContent,
                Active                      = true,
                SenderEmployee              = sendletter.SenderEmployee
            };
            //Temp Collection of Cases
            //foreach (var item in sendletter.Cases)
            //{
            //    tempSendLetter.Cases.Add(item);
            //}
            //Copy files to temp
            foreach (var item in sendletter.sendLetterFiles)
            {
                TempSendLetterFile tempSendLetterFile = new TempSendLetterFile {
                    File = item.File
                };
                tempSendLetter.TempSendLetterFiles.Add(tempSendLetterFile);
            }
            //Copy Appendages to temp
            foreach (var item in sendletter.Appendages)
            {
                TempSendAppendage tempSendAppendage = new TempSendAppendage {
                    File = item.File
                };
                tempSendLetter.Appendages.Add(tempSendAppendage);
            }
            //Copy Recievers
            //foreach (var item in sendletter.Recievers)
            //{
            //    Reciever r = new Reciever();
            //    r.Id = item.Id;
            //    r.Organization = item.Organization;
            //    r.Person = item.Person;
            //    r.Post = item.Post;
            //}

            tempSendLetterManager.Add(tempSendLetter);
            tempSendLetterManager.saveChanges();

            #endregion
            //Set assortments
            oldLetter.Assortment = editOutgoingLettersViewModel.sendLetter.Assortment;
            //Set Description
            oldLetter.Description = editOutgoingLettersViewModel.sendLetter.Description;
            //Set letter content
            oldLetter.Body = editOutgoingLettersViewModel.sendLetter.Body;
            //Set Letter DateTime
            if (!string.IsNullOrEmpty(editOutgoingLettersViewModel.LetterDateTime))
            {
                oldLetter.LetterDateTime = editOutgoingLettersViewModel.LetterDateTime.toEnglishNumber().ToGeorgianDateTime();
            }

            oldLetter.LastModifyDateTime = DateTime.Now;

            if (oldLetter.User.Id != new Guid(User.Identity.Name))
            {
                sendLetterManager.AddUser(oldLetter, new Guid(User.Identity.Name));
            }

            //upload files
            sendLetterManager.UpdateSendLetterFiles(oldLetter, editOutgoingLettersViewModel.fileUploadLetters, editOutgoingLettersViewModel.FilesID);
            sendLetterManager.UpdateSendLetterAppendages(oldLetter, editOutgoingLettersViewModel.fileUploadAppendages, editOutgoingLettersViewModel.AppendagesID);


            oldLetter.ParentType = editOutgoingLettersViewModel.sendLetter.ParentType;
            //Set Parent Letter
            sendLetterManager.AddParent(oldLetter, editOutgoingLettersViewModel.ParentletterId);
            //update organization , post and person
            if (editOutgoingLettersViewModel.PersonGuid != Guid.Empty || editOutgoingLettersViewModel.OrganizationGuid != Guid.Empty)
            {
                sendLetterManager.EditReciever(oldLetter, editOutgoingLettersViewModel.OrganizationGuid, editOutgoingLettersViewModel.PersonGuid, editOutgoingLettersViewModel.PostGuid);
            }
            //update department , post and employee
            if (editOutgoingLettersViewModel.EmployeeGuid != Guid.Empty || editOutgoingLettersViewModel.DepartmentGuid != Guid.Empty)
            {
                sendLetterManager.EditSenderEmployee(oldLetter, editOutgoingLettersViewModel.DepartmentGuid, editOutgoingLettersViewModel.EmployeeGuid, editOutgoingLettersViewModel.DepartmentPostGuid);
            }

            //set rowNumber Logic
            oldLetter.RowNumber = editOutgoingLettersViewModel.autoRowNumber ? sendLetterManager.AutoRowNumber(oldLetter.SenderEmployee?.Department) : editOutgoingLettersViewModel.RowNumber;

            //Add cases
            sendLetterManager.EditCases(oldLetter, editOutgoingLettersViewModel.SelectedCasesGuid);


            //Start Processing Files and Appendages to Save them as pdf
            sendLetterManager.GeneratePDF(oldLetter, editOutgoingLettersViewModel.LetterTemplate);
            sendLetterManager.Update(oldLetter);
            sendLetterManager.saveChanges();
            return(RedirectToAction("Index"));
        }