Exemple #1
0
        // lock-ban hívódik, nem lehet async
        public static int Update(ossContext context, Models.Volume entity)
        {
            Register.Modification(context, entity);
            context.SaveChanges();

            return(entity.Volumekod);
        }
Exemple #2
0
        /// <summary>
        /// Deletes a volume
        /// </summary>
        /// <param name="selectedVolume"></param>
        public static void deleteVolume(Models.Volume selectedVolume)
        {
            try
            {
                // Get the root directory and print out some information about it.
                DirectoryInfo dirInfo = selectedVolume.RootDirectory;

                // Get the files in the directory and print out some information about them.
                FileInfo[] fileNames = dirInfo.GetFiles("*.*");

                foreach (var item in fileNames)
                {
                    File.Delete(item.FullName);
                }

                DirectoryInfo[] dirInfos = dirInfo.GetDirectories("*.*");

                foreach (DirectoryInfo item in dirInfos)
                {
                    Directory.Delete(item.FullName, true);
                }
            }
            catch (DirectoryNotFoundException dirNotFound)
            {
                MessageBox.Show(dirNotFound.Message);
            }
        }
Exemple #3
0
        // lock-ban hívódik, nem lehet async
        public static int Add(ossContext model, Models.Volume entity)
        {
            Register.Creation(model, entity);
            model.Volume.Add(entity);
            model.SaveChanges();

            return(entity.Volumekod);
        }
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));
        }