Exemplo n.º 1
0
        private bool CheckPeriod(SFTPkonto ftpAccount, List <string> okFileCodes, string fileCodeInFileName, Match match, RegisterInfo delregInfo)
        {
            var okPeriodFile = false;

            okPeriodFile = true;
            var periodInFileName = match.Groups[2].Value;

            if (!_portalService
                .HamtaGiltigaPerioderForDelregister(delregInfo.Id)
                .Contains(periodInFileName))
            {
                okPeriodFile = false;
            }
            return(okPeriodFile);
        }
Exemplo n.º 2
0
        public void UploadAndShowResults(HttpContextBase ContentBase, List <ViewDataUploadFilesResult> resultList, string userId, string userName, string orgKod, int selectedRegisterId, string selectedUnitId, string selectedPeriod, List <RegisterInfo> registerList)
        {
            var httpRequest = ContentBase.Request;
            //System.Diagnostics.Debug.WriteLine(Directory.Exists(tempPath));

            //Kolla vilket register filen/filerna hör till och skapa mapp om det behövs
            var slussmapp = registerList.Where(x => x.Id == selectedRegisterId).Select(x => x.Slussmapp).Single();

            var fileName         = httpRequest.Files[0].FileName;
            var periodInFileName = String.Empty;

            //Period tas från filnamnet pga problem med selectedPeriod från klienten 4 april 2018
            //Använd regular expression istf hårdkodning - 20180917
            var filkravList = _portalSosRepository.GetFileRequirementsAndExpectedFilesForSubDirectory(selectedRegisterId);

            foreach (var filkrav in filkravList)
            {
                //hämta regexper
                var forvantadFilList = filkrav.AdmForvantadfil;
                //kontrollera om inkommande fil matchar regexp
                foreach (var forvFil in forvantadFilList)
                {
                    Regex expression = new Regex(forvFil.Regexp, RegexOptions.IgnoreCase);
                    Match match      = expression.Match(fileName);
                    if (match.Success)
                    {
                        periodInFileName = match.Groups[2].Value;
                        //periodInFileName = match.Groups["period"].Value;
                    }
                }
            }


            //var period = GetPeriodFromFilename(httpRequest.Files[0]);
            if (periodInFileName == "")
            {
                throw new Exception("Felaktig period i filnamnet, " + httpRequest.Files[0].FileName);
            }
            else if (!_portalSosService.HamtaGiltigaPerioderForDelregister(selectedRegisterId).Contains(periodInFileName)) //Kontrollera om vald period är ok
            {
                throw new Exception("Period i filnamnet inte inom godkänt intervall. " + httpRequest.Files[0].FileName);
            }

            //Hämta forvantadlevid beroende på vald period
            var forvantadLevId = _portalSosRepository.GetExpextedDeliveryIdForSubDirAndPeriod(selectedRegisterId, periodInFileName);

            //var forvantadLevId = registerList.Where(x => x.Id == selectedRegisterId).Select(x => x.ForvantadLevransId).Single();
            StorageRoot = StorageRoot + slussmapp + "\\";
            String fullPath = Path.Combine(StorageRoot);

            Directory.CreateDirectory(fullPath);

            //hämta ett leveransId och skapa hashAddOn till filnamnet
            var orgId       = _portalSosRepository.GetUserOrganisationId(userId);
            var orgenhetsId = 0;

            //Om leverans för stadsdelar, hämta organisationsenhetsid
            if (!String.IsNullOrWhiteSpace(selectedUnitId))
            {
                orgenhetsId = _portalSosRepository.GetOrganisationsenhetsId(selectedUnitId, orgId);
            }

            var levId   = _portalSosRepository.GetNewLeveransId(userId, userName, orgId, selectedRegisterId, orgenhetsId, forvantadLevId, "Levererad", 0);
            var hash    = GetHashAddOn(orgKod, levId);
            var headers = httpRequest.Headers;

            if (string.IsNullOrEmpty(headers["X-File-Name"]))
            {
                var registerId = _portalSosRepository.GetSubDirectoryById(selectedRegisterId).RegisterId;
                var register   = _portalSosRepository.GetDirectoryById(registerId);
                UploadWholeFile(ContentBase, resultList, hash, levId, selectedUnitId, register.Kortnamn);
            }

            //Om inga filer kunde sparas, rensa levid
            if (!resultList.Any())
            {
                _portalSosRepository.DeleteDelivery(levId);
            }
            //Om PAR-filer, skapa statusfil och ladda upp
            else
            {
                var registerId = _portalSosRepository.GetSubDirectoryById(selectedRegisterId).RegisterId;
                var register   = _portalSosRepository.GetDirectoryById(registerId);
                if (register.Kortnamn == "PAR")
                {
                    //Skapa statusfil
                    CreateAndUploadPARStatusFile(levId, resultList);
                }
            }

            //TODO - Test EncryptDecrypt
            //var krypteradUtfil = "C:\\Socialstyrelsen\\KrypteringTest\\krypteradUtfil.txt";
            //var dekrypteradUtfil = "C:\\Socialstyrelsen\\KrypteringTest\\dekrypteradUtfil.txt";
            //var storKrypteradUtfil = "C:\\Socialstyrelsen\\KrypteringTest\\storKrypteradUtfil.txt";
            //var storDekrypteradUtfil = "C:\\Socialstyrelsen\\KrypteringTest\\storDekrypteradUtfil.txt";

            //EncryptDecrypt.AES_Encrypt("C:\\Socialstyrelsen\\KrypteringTest\\testfil.txt", krypteradUtfil);
            //EncryptDecrypt.AES_Decrypt("C:\\Socialstyrelsen\\KrypteringTest\\krypteradUtfil.txt", dekrypteradUtfil);
            //EncryptDecrypt.AES_Encrypt("C:\\Socialstyrelsen\\KrypteringTest\\Ekb_0330_201707_20170815T1011.txt", storKrypteradUtfil);            //EncryptDecrypt.AES_Decrypt("C:\\Socialstyrelsen\\KrypteringTest\\storKrypteradUtfil.txt", storDekrypteradUtfil);
        }