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); }
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); }