示例#1
0
        public void UpdateReceiveLetterFiles(ReceivedLetter receivedLetter,
                                             List <HttpPostedFileBase> fileUploadLetters, List <Guid> FilesID)
        {
            if (receivedLetter.ReceiveLetterFiles != null)
            {
                List <ReceiveLetterFile> deletedList = new List <ReceiveLetterFile>();
                foreach (var item in receivedLetter.ReceiveLetterFiles.ToList())
                {
                    if (FilesID.All(x => x != item.Id))
                    {
                        deletedList.Add(item);
                    }
                }

                //Delete Items
                var dbSetremovefiles = DBC.Set <ReceiveLetterFile>();
                foreach (var item in deletedList)
                {
                    dbSetremovefiles.Remove(item);
                }
            }

            int i = 0;

            foreach (var item in fileUploadLetters)
            {
                if (item != null && item.ContentLength > 0)
                {
                    var target = new MemoryStream();
                    ReceiveLetterFile receiveLetterFile = new ReceiveLetterFile();
                    item.InputStream.CopyTo(target);
                    receiveLetterFile.File = new ArchiveFile
                    {
                        Content     = target.ToArray(),
                        Name        = item.FileName,
                        ContentType = item.ContentType
                    };
                    try
                    {
                        receivedLetter.ReceiveLetterFiles[i] = receiveLetterFile;
                    }
                    catch (Exception)
                    {
                        receivedLetter.ReceiveLetterFiles.Add(receiveLetterFile);
                    }
                }
                i++;
            }
        }
示例#2
0
        public ActionResult Add(AddIncomingLettersViewModel incomingLettersViewModel)
        {
            ReceiveLetterManager receiveLetterManager = new ReceiveLetterManager();

            //Add letter files
            if (incomingLettersViewModel.FileUploadLetters != null && incomingLettersViewModel.FileUploadLetters.Count > 0)
            {
                incomingLettersViewModel.receivedLetter.ReceiveLetterFiles = new List <ReceiveLetterFile>();

                foreach (var item in incomingLettersViewModel.FileUploadLetters)
                {
                    if (item == null || item.ContentLength <= 0)
                    {
                        continue;
                    }
                    var target = new MemoryStream();
                    ReceiveLetterFile receiveLetterFile = new ReceiveLetterFile();
                    item.InputStream.CopyTo(target);
                    receiveLetterFile.File = new ArchiveFile
                    {
                        Content     = target.ToArray(),
                        Name        = item.FileName,
                        ContentType = item.ContentType
                    };
                    incomingLettersViewModel.receivedLetter.ReceiveLetterFiles.Add(receiveLetterFile);
                }
            }
            //Add letter appendages
            if (incomingLettersViewModel.FileUploadAppendages != null && incomingLettersViewModel.FileUploadAppendages.Count > 0)
            {
                incomingLettersViewModel.receivedLetter.Appendages = new List <ReceiveAppendage>();
                foreach (var item in incomingLettersViewModel.FileUploadAppendages)
                {
                    if (item != null && item.ContentLength > 0)
                    {
                        var target = new MemoryStream();
                        ReceiveAppendage receiveAppendage = new ReceiveAppendage();
                        item.InputStream.CopyTo(target);
                        receiveAppendage.File = new ArchiveFile
                        {
                            Content     = target.ToArray(),
                            Name        = item.FileName,
                            ContentType = item.ContentType
                        };
                        incomingLettersViewModel.receivedLetter.Appendages.Add(receiveAppendage);
                    }
                }
            }
            //Date Times
            if (!string.IsNullOrEmpty(incomingLettersViewModel.LetterDateTime))
            {
                incomingLettersViewModel.receivedLetter.LetterDateTime =
                    incomingLettersViewModel.LetterDateTime.ToGeorgianDateTime();
            }
            incomingLettersViewModel.receivedLetter.ArchiveDateTime    = DateTime.Now;
            incomingLettersViewModel.receivedLetter.LastModifyDateTime = DateTime.Now;
            //Row number and user
            incomingLettersViewModel.receivedLetter.RowNumber = incomingLettersViewModel.RowNumber;
            receiveLetterManager.AddUser(incomingLettersViewModel.receivedLetter, new Guid(User.Identity.Name));

            //Set Parent Letter
            receiveLetterManager.SetParent(incomingLettersViewModel.receivedLetter, incomingLettersViewModel.ParentletterId);


            //Add organization , post and person
            if (incomingLettersViewModel.PersonGuid != Guid.Empty || incomingLettersViewModel.OrganizationGuid != Guid.Empty)
            {
                receiveLetterManager.AddSender(incomingLettersViewModel.receivedLetter, incomingLettersViewModel.OrganizationGuid, incomingLettersViewModel.PersonGuid, incomingLettersViewModel.PostGuid);
            }


            //Add cases
            if (incomingLettersViewModel.SelectedCasesGuid != null && incomingLettersViewModel.SelectedCasesGuid.Count > 0)
            {
                receiveLetterManager.AddCases(incomingLettersViewModel.receivedLetter, incomingLettersViewModel.SelectedCasesGuid);
            }
            //Add 3 pdf to db
            receiveLetterManager.GeneratePDF(incomingLettersViewModel.receivedLetter);

            //Add letter to db and save changes
            receiveLetterManager.Add(incomingLettersViewModel.receivedLetter);
            receiveLetterManager.saveChanges();

            return(RedirectToAction("Index"));
        }