Exemple #1
0
        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));
        }
Exemple #3
0
 private static string GenerateBizonylatszam(ossContext context, int bizonylattipusKod)
 {
     return(Bl[bizonylattipusKod].Elotag +
            context.KodGen(Bl[bizonylattipusKod].KodNev).ToString("00000"));
 }
Exemple #4
0
        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));
        }