public static async Task <byte[]> MunkalapAsync(ossContext context, string sid, int projektKod) { SessionBll.Check(context, sid); await CsoportDal.JogeAsync(context, JogKod.PROJEKT); var entityProjekt = await ProjektDal.GetAsync(context, projektKod); var entityParticio = await ParticioDal.GetAsync(context); var pc = JsonConvert.DeserializeObject <ProjektConf>(entityParticio.Projekt); var iratKod = pc.MunkalapIratkod != null ? (int)pc.MunkalapIratkod : throw new Exception(string.Format(Messages.ParticioHiba, "MunkalapIratkod")); if (entityProjekt.Munkalapszam == null) { entityProjekt.Munkalapszam = context.KodGen(KodNev.Munkalapszam) + "/" + DateTime.Now.Year; await ProjektDal.UpdateAsync(context, entityProjekt); await ProjektDal.GetAsync(context, projektKod); } var original = await IratBll.LetoltesAsync(context, sid, iratKod); ComponentInfo.SetLicense(serialKey); DocumentModel document; using (var msDocx = new MemoryStream()) { msDocx.Write(original.b, 0, original.b.Count()); document = DocumentModel.Load(msDocx, GemBox.Document.LoadOptions.DocxDefault); } var mezoertekek = new { PROJEKTKOD = entityProjekt.Projektkod.ToString(), UGYFELNEV = entityProjekt.UgyfelkodNavigation.Nev, TELEPITESICIM = entityProjekt.Telepitesicim, PROJEKTJELLEGE = entityProjekt.Projektjellege, MUNKALAPSZAM = entityProjekt.Munkalapszam, DC = entityProjekt.Dckw.ToString(CultureInfo.CurrentCulture), AC = entityProjekt.Ackva.ToString(CultureInfo.CurrentCulture), TELEFONSZAM = entityProjekt.UgyfelkodNavigation.Telefon, NAPELEM = entityProjekt.Napelem, INVERTER = entityProjekt.Inverter }; document.MailMerge.Execute(mezoertekek); byte[] result; using (var msDocx = new MemoryStream()) { document.Save(msDocx, GemBox.Document.SaveOptions.DocxDefault); result = msDocx.ToArray(); } return(result); }
public static async Task <int> AddAsync(ossContext context, string sid, PenztarTetelDto dto) { SessionBll.Check(context, sid); await CsoportDal.JogeAsync(context, JogKod.PENZTAR); dto.Penztarbizonylatszam = context.KodGen(KodNev.Penztar.ToString() + dto.Penztarkod).ToString("00000") + "/" + dto.Penztarkod; var entity = ObjectUtils.Convert <PenztarTetelDto, Models.Penztartetel>(dto); return(await PenztarTetelDal.AddAsync(context, entity)); }
private static string GenerateBizonylatszam(ossContext context, int bizonylattipusKod) { return(Bl[bizonylattipusKod].Elotag + context.KodGen(Bl[bizonylattipusKod].KodNev).ToString("00000")); }
public static async Task <Models.Dokumentum> BejegyzesAsync(ossContext context, string sid, FajlBuf fajlBuf) { const int minSize = 100 * 1024 * 1024; SessionBll.Check(context, sid); await CsoportDal.JogeAsync(context, JogKod.IRAT); Models.Volume entityVolume; int ujFajlMerete = fajlBuf.Meret; // lock-ban nem lehet async var entityParticio = await ParticioDal.GetAsync(context); var vc = JsonConvert.DeserializeObject <VolumeConf>(entityParticio.Volume); var Eleresiut = vc.UjvolumeEleresiut ?? throw new Exception(string.Format(Messages.ParticioHiba, "UjvolumeEleresiut")); if (!Directory.Exists(Eleresiut)) { throw new Exception($"UjvolumeEleresiut: nem létező könyvtár: {Eleresiut}!"); } var Maxmeret = vc.UjvolumeMaxmeret != null ? (int)vc.UjvolumeMaxmeret : throw new Exception(string.Format(Messages.ParticioHiba, "UjvolumeMaxmeret")); if (Maxmeret < minSize) { throw new Exception($"UjvolumeMaxmeret: az érték legyen nagyobb, mint {minSize} - jelenleg {Maxmeret}!"); } lock (LockMe) { var lstVolume = VolumeDal.ReadElegSzabadHely(context, ujFajlMerete); if (lstVolume.Count > 0) { entityVolume = lstVolume[0]; if (++entityVolume.Fajlokszamautolsokonyvtarban > 100) { ++entityVolume.Utolsokonyvtar; entityVolume.Fajlokszamautolsokonyvtarban = 1; } entityVolume.Jelenlegimeret += ujFajlMerete; //ezt lehetne okosítani... if ((entityVolume.Maxmeret - entityVolume.Jelenlegimeret) < (10 * 1024 * 1024)) { entityVolume.Allapot = KotetAllapot.Closed.ToString(); } entityVolume.Allapotkelte = DateTime.Now; VolumeDal.Update(context, entityVolume); } else { entityVolume = new Models.Volume { Particiokod = (int)context.CurrentSession.Particiokod, Volumeno = context.KodGen(KodNev.Volume), Eleresiut = Eleresiut, Maxmeret = Maxmeret, Jelenlegimeret = ujFajlMerete, Utolsokonyvtar = 1, Fajlokszamautolsokonyvtarban = 1, Allapot = KotetAllapot.Opened.ToString(), Allapotkelte = DateTime.Now }; VolumeDal.Add(context, entityVolume); } } var entityDokumentum = new Models.Dokumentum { Volumekod = entityVolume.Volumekod, Konyvtar = entityVolume.Utolsokonyvtar, Meret = ujFajlMerete, Ext = fajlBuf.Ext, Hash = fajlBuf.Hash, Iratkod = fajlBuf.IratKod, Megjegyzes = fajlBuf.Megjegyzes }; var dokumentumKod = await DokumentumDal.AddAsync(context, entityDokumentum); return(await DokumentumDal.GetWithVolumeAsync(context, dokumentumKod)); }