public int GetNewLeveransId(string userId, string userName, int orgId, int regId, int orgenhetsId, int forvLevId, string status) { var dbStatus = "Levererad"; if (!String.IsNullOrEmpty(status)) { dbStatus = status; } var leverans = new Leverans { ForvantadleveransId = forvLevId, OrganisationId = orgId, ApplicationUserId = userId, DelregisterId = regId, Leveranstidpunkt = DateTime.Now, Leveransstatus = dbStatus, SkapadDatum = DateTime.Now, SkapadAv = userName, AndradDatum = DateTime.Now, AndradAv = userName }; if (orgenhetsId != 0) { leverans.OrganisationsenhetsId = orgenhetsId; } DbContext.Leverans.Add(leverans); DbContext.SaveChanges(); return(leverans.Id); }
public IEnumerable <FilloggDetaljDTO> HamtaHistorikForOrganisationRegisterPeriod(int orgId, int regId, string periodForReg) { var historikLista = new List <FilloggDetaljDTO>(); var sorteradHistorikLista = new List <FilloggDetaljDTO>(); var delregisterLista = _portalRepository.GetSubdirsForDirectory(regId); //var forvLevId = _portalRepository.get foreach (var delregister in delregisterLista) { //Hämta forvantadleveransid för delregister och period var forvLevId = _portalRepository.GetExpextedDeliveryIdForSubDirAndPeriod(delregister.Id, periodForReg); var senasteLeverans = new Leverans(); //kan org rapportera per enhet för aktuellt delregister? => hämta senaste leverans per enhet var uppgiftsskyldighet = _portalRepository.GetUppgiftsskyldighetForOrganisationAndRegister(orgId, delregister.Id); if (uppgiftsskyldighet != null) { if (uppgiftsskyldighet.RapporterarPerEnhet) { var orgEnhetsList = _portalRepository.GetOrgUnitsForOrg(orgId); foreach (var orgenhet in orgEnhetsList) { senasteLeverans = _portalRepository.GetLatestDeliveryForOrganisationSubDirectoryPeriodAndOrgUnit(orgId, delregister.Id, forvLevId, orgenhet.Id); if (senasteLeverans != null) { AddHistorikListItem(senasteLeverans, historikLista); } } } else { senasteLeverans = _portalRepository.GetLatestDeliveryForOrganisationSubDirectoryAndPeriod(orgId, delregister.Id, forvLevId); if (senasteLeverans != null) { AddHistorikListItem(senasteLeverans, historikLista); } } } } if (historikLista.Count > 0) { sorteradHistorikLista = historikLista.OrderBy(x => x.Enhetskod).ThenBy(x => x.RegisterKortnamn).ThenByDescending(x => x.Id).ToList(); } return(sorteradHistorikLista); }
private List <FilloggDetaljDTO> AddHistorikListItem(Leverans senasteLeverans, List <FilloggDetaljDTO> historikLista) { var filloggDetalj = new FilloggDetaljDTO(); //Kolla om återkopplingsfil finns för aktuell leverans var aterkoppling = _portalRepository.GetAterkopplingForLeverans(senasteLeverans.Id); //Kolla om enhetskod finns för aktuell leverans (stadsdelsleverans) var enhetskod = String.Empty; if (senasteLeverans.OrganisationsenhetsId != null) { var orgenhetid = Convert.ToInt32(senasteLeverans.OrganisationsenhetsId); enhetskod = _portalRepository.GetEnhetskodForLeverans(orgenhetid); } //Hämta period för aktuell leverans var period = _portalRepository.GetPeriodForAktuellLeverans(senasteLeverans.ForvantadleveransId); var filer = _portalRepository.GetFilerForLeveransId(senasteLeverans.Id).ToList(); var registerKortnamn = _portalRepository.GetSubDirectoryShortName(senasteLeverans.DelregisterId); if (!filer.Any()) { filloggDetalj = new FilloggDetaljDTO(); filloggDetalj.Id = 0; filloggDetalj.LeveransId = senasteLeverans.Id; filloggDetalj.Filnamn = " - "; filloggDetalj.Filstatus = " - "; filloggDetalj.Kontaktperson = senasteLeverans.ApplicationUserId; filloggDetalj.Leveransstatus = senasteLeverans.Leveransstatus; filloggDetalj.Leveranstidpunkt = senasteLeverans.Leveranstidpunkt; filloggDetalj.RegisterKortnamn = registerKortnamn; filloggDetalj.Resultatfil = " - "; filloggDetalj.Enhetskod = enhetskod; filloggDetalj.Period = period; if (aterkoppling != null) { filloggDetalj.Leveransstatus = aterkoppling.Leveransstatus; filloggDetalj.Resultatfil = aterkoppling.Resultatfil; } historikLista.Add(filloggDetalj); } else { foreach (var fil in filer) { filloggDetalj = (FilloggDetaljDTO.FromFillogg(fil)); filloggDetalj.Kontaktperson = senasteLeverans.ApplicationUserId; filloggDetalj.Leveransstatus = senasteLeverans.Leveransstatus; filloggDetalj.Leveranstidpunkt = senasteLeverans.Leveranstidpunkt; filloggDetalj.RegisterKortnamn = registerKortnamn; filloggDetalj.Resultatfil = "Ej kontrollerad"; filloggDetalj.Enhetskod = enhetskod; filloggDetalj.Period = period; if (aterkoppling != null) { //filloggDetalj.Leveransstatus = aterkoppling.Leveransstatus; //Skriv ej över leveransstatusen från återkopplingen. Beslut 20180912, ärende #128 filloggDetalj.Resultatfil = aterkoppling.Resultatfil; } historikLista.Add(filloggDetalj); } } return(historikLista); }