private bool LockWritePracownik(DBPracownik input)
        {
            int?clear = this.konto.Clear;

            if (IsWrite(input.Class, clear))
            {
                if (!IsWrite(input.Class_Data_zaczecia, clear))
                {
                    return(false);
                }
                if (!IsWrite(input.Class_Imie, clear))
                {
                    return(false);
                }
                if (!IsWrite(input.Class_Nazwisko, clear))
                {
                    return(false);
                }
                if (!IsWrite(input.Class_Stanowisko, clear))
                {
                    return(false);
                }
                return(true);
            }

            return(false);
        }
        public bool SetPracownik(Pracownik input, int[] classes)
        {
            if (this.konto == null)
            {
                return(false);
            }
            DBPracownik newPra = new DBPracownik()
            {
                Imie                = input.Imie,
                Class_Imie          = classes[0],
                Nazwisko            = input.Nazwisko,
                Class_Nazwisko      = classes[1],
                Data_zaczecia       = input.Data_zaczecia,
                Class_Data_zaczecia = classes[2],
                Stanowisko          = input.Stanowisko,
                Class_Stanowisko    = classes[3],
                ID_Konto            = input.ID_Konto,
                Class               = classes[4]
            };

            if (Locker <DBPracownik> .Lock(newPra, LockWritePracownik))
            {
                ctx.Pracownik.Add(newPra);
                ctx.SaveChanges();
                return(true);
            }
            return(false);
        }
        public bool Register(string username, string password, int clear)
        {
            string hash  = password + "a6s8d";
            var    konto = new DBKonto()
            {
                Login = username, Haslo = md5Hash.GetMD5Hash(hash), Salt = "a6s8d", Clear = clear, Class_Haslo = 1, Class = 1, Class_Login = 1, Class_salt = 1
            };

            ctx.Konto.Add(konto);
            ctx.SaveChanges();
            int?id = ctx.Konto.Where(c => c.Login.Equals(username)).First().ID;
            var kl = new DBKlient()
            {
                Imie = username, Nazwisko = username, Adres = username + " 11", Class_Adres = 1, Class_Imie = 1, Class_Nazwisko = 1, Class = 1, ID_Konto = id
            };

            ctx.Klient.Add(kl);
            DBPracownik p;

            if (clear > 1)
            {
                p = new DBPracownik()
                {
                    Imie = username, Nazwisko = username, Class_Imie = 1, Class_Nazwisko = 1, Class = 1, ID_Konto = id, Data_zaczecia = DateTime.Now, Class_Data_zaczecia = 1, Stanowisko = "Test", Class_Stanowisko = 1
                };
                ctx.Pracownik.Add(p);
            }

            ctx.SaveChanges();
            return(true);
        }
        private Pracownik RestrictReadPracownik(DBPracownik worker)
        {
            int?clear           = this.konto.Clear;
            var resultPracownik = new Pracownik();

            if (IsRead(worker.Class, clear))
            {
                resultPracownik.ID            = worker.ID;
                resultPracownik.Imie          = IsRead(worker.Class_Imie, clear) ? worker.Imie : null;
                resultPracownik.Nazwisko      = IsRead(worker.Class_Nazwisko, clear) ? worker.Nazwisko : null;
                resultPracownik.Stanowisko    = IsRead(worker.Class_Stanowisko, clear) ? worker.Stanowisko : null;
                resultPracownik.Data_zaczecia = IsRead(worker.Class_Data_zaczecia, clear) ? worker.Data_zaczecia : null;
                resultPracownik.ID_Konto      = worker.ID_Konto;


                return(resultPracownik);
            }
            return(null);
        }