Ejemplo n.º 1
0
 /// <summary>
 /// Save row in database
 /// </summary>
 /// <param name="rowNum"></param>
 /// <param name="code"></param>
 private void SaveEntry(Models.LevelRange entry, string FileName)
 {
     using (Models.PhonesDataContext model = new Models.PhonesDataContext())
     {
         Models.PhonesDruzhba phone = new Models.PhonesDruzhba();
         phone.Code     = entry.code;
         phone.FromFile = FileName;
         if (entry.entry.isDep)
         {
             phone.Dep = entry.entry.DepName;
         }
         else
         {
             phone.PIB        = entry.entry.FIO;
             phone.Birthday   = entry.entry.Birthday;
             phone.Post       = entry.entry.post;
             phone.ObjectName = entry.ObjectName;
             phone.Phone      = entry.entry.phone;
             phone.Email      = entry.entry.email;
             phone.Mobile     = entry.entry.mobile;
         }
         model.PhonesDruzhbas.InsertOnSubmit(phone);
         model.SubmitChanges();
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// delete all record imported from file
 /// </summary>
 /// <param name="FileName"></param>
 private void DeleteRecords(string FileName)
 {
     using (Models.PhonesDataContext model = new Models.PhonesDataContext())
     {
         model.PhonesDruzhbas.DeleteAllOnSubmit(model.PhonesDruzhbas.Where(x => x.FromFile == FileName));
         model.SubmitChanges();
     }
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Update CompanyObject name in Database
 /// </summary>
 private void UpdateObjects(string FileName)
 {
     using (Models.PhonesDataContext model = new Models.PhonesDataContext())
     {
         foreach (var o in model.PhonesDruzhbas)
         {
             o.ObjectName = GetCompanyObject(o.Code, FileName);
         }
         model.SubmitChanges();
     }
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Помечаю сообщение как прочитанное
 /// </summary>
 /// <param name="secret"></param>
 /// <returns></returns>
 public static void MarkMessageAsReaded(string uid)
 {
     using (OfficeMapper.Models.PhonesDataContext model = new Models.PhonesDataContext())
     {
         model.ReadedMailMessages.InsertOnSubmit(new Models.ReadedMailMessage()
         {
             uid = uid
         });
         model.SubmitChanges();
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Подтверждает перечень сервисов как ОТКЛОНЕННЫЕ для ИНВЕНТАРИЗАЦИИ
 /// </summary>
 /// <param name="secret"></param>
 /// <param name="data"></param>
 void DeclineServicesInvent(string secret, Models.DecisionData data)
 {
     using (Models.PhonesDataContext model = new Models.PhonesDataContext())
     {
         foreach (var service in model.RequestTickets.Where(x => x.secret == secret))
         {
             service.RequestStage = StageEnum.Declined.ToString();
             model.SubmitChanges();
         }
     }
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Сохраняет в базе загрузку сайта
 /// </summary>
 void LogUserAccess(string URI, string IPAddress)
 {
     using (Models.PhonesDataContext model = new Models.PhonesDataContext())
     {
         model.LogSiteAccesses.InsertOnSubmit(new Models.LogSiteAccess()
         {
             Date = DateTime.Now,
             IP   = IPAddress,
             URI  = URI
         });
         model.SubmitChanges();
     }
 }
        /// <summary>
        /// Отправляю заявку дальше по маршруту
        /// </summary>
        /// <param name="secret"></param>
        /// <returns></returns>
        public StageEnum PushNextStage(string secret, Models.DecisionData data = null)
        {
            StageEnum nextStage = service.PushNextStage(secret, data);

            ///---Обновляю статус заявки в базе
            using (Models.PhonesDataContext model = new Models.PhonesDataContext())
            {
                foreach (var rt in model.RequestTickets.Where(x => x.secret == secret))
                {
                    rt.RequestStage = nextStage.ToString();
                }
                model.SubmitChanges();
            }
            return(nextStage);
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Сохранение заявки на новый сервис
 /// </summary>
 /// <param name="ar"></param>
 public void Save(AcceptRequest ar)
 {
     using (Models.PhonesDataContext model = new Models.PhonesDataContext())
     {
         model.RequestTickets.InsertOnSubmit(new Models.RequestTicket()
         {
             RequestDate  = DateTime.Now,
             RequestStage = StageEnum.NewRequest.ToString(),
             ServiceType  = ServiceTypeEnum.UserService.ToString(),
             UTNLogin     = ar.UTNLogin,
             serviceId    = ar.ServiceId,
             secret       = ar.Secret,
         });
         model.SubmitChanges();
     }
 }
Ejemplo n.º 9
0
 public static void SaveUser(Models.AuthUser user)
 {
     using (OfficeMapper.Models.PhonesDataContext model = new Models.PhonesDataContext())
     {
         if (model.Users.Count(x => x.UTNLogin == user.UTNLogin) == 0)
         {
             model.Users.InsertOnSubmit(new Models.User()
             {
                 UTNLogin = user.UTNLogin,
                 Domain   = user.domain,
                 FIO      = user.FIO,
                 Email    = user.email
             });
             model.SubmitChanges();
         }
     }
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Подтверждает перечень сервисов как ПОДТВЕРЖДЕННЫЕ для ИНВЕНТАРИЗАЦИИ
 /// </summary>
 /// <param name="secret"></param>
 /// <param name="data"></param>
 void AcceptServicesInvent(string secret, Models.DecisionData data)
 {
     using (Models.PhonesDataContext model = new Models.PhonesDataContext())
     {
         foreach (var service in model.RequestTickets.Where(x => x.secret == secret))
         {
             service.RequestStage = StageEnum.Accepted.ToString();
             if (model.AssignedServices
                 .Count(x => x.ServiceId == service.serviceId && x.UTNLogin == service.UTNLogin) > 0)
             {
                 var assignedService = model.AssignedServices
                                       .First(x => x.ServiceId == service.serviceId && x.UTNLogin == service.UTNLogin);
                 assignedService.TechnicalResponsibleApproved   = true;
                 assignedService.TechnicalResponsibleApprovedBy = data.Acceptor.UTNLogin;
             }
             service.RequestStage = StageEnum.Accepted.ToString();
             model.SubmitChanges();
         }
     }
 }
Ejemplo n.º 11
0
        public ActionResult ChangePhone(Models.ChangePhoneModel modelIn)
        {
            Models.ChangePhoneModel modelOut = new Models.ChangePhoneModel();
            modelOut.CurrentUser = System.Web.HttpContext.Current.User.Identity.Name;
            HttpCookie myCookie = new HttpCookie("currentPhone");

            myCookie["currentPhone"] = modelIn.Phone;
            myCookie.Expires         = DateTime.Now.AddDays(3650d);
            System.Web.HttpContext.Current.Response.Cookies.Add(myCookie);
            using (Models.PhonesDataContext model = new Models.PhonesDataContext())
            {
                model.ChangePhoneLogs.InsertOnSubmit(new Models.ChangePhoneLog()
                {
                    Date  = DateTime.Now,
                    Login = System.Web.HttpContext.Current.User.Identity.Name,
                    Phone = modelIn.Phone
                });
                model.SubmitChanges();
            }
            return(RedirectToAction(@"/"));
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Инициализирует объект и загружает структуру из файловой системы
        /// в базу данных (обновляет данные из манифестов)
        /// </summary>
        /// <param name="currDir"></param>
        public void Build(string currDir)
        {
            using (Models.PhonesDataContext model = new Models.PhonesDataContext())
            {
                if (HasAccess(currDir) && System.IO.Directory.GetDirectories(currDir).Length > 0)
                {
                    foreach (var di in (new System.IO.DirectoryInfo(currDir)).GetDirectories())
                    {
                        if (ManifestDirectory.Exists(currDir))
                        {
                            ///--Получаю манифест
                            ManifestDirectory md = new ManifestDirectory(currDir);

                            ///---Проверяю наличие записи в базе, если нет - создаю
                            if (model.FileShares.Count(x => x.Name == currDir) == 0)
                            {
                                Models.FileShare share = new Models.FileShare()
                                {
                                    Name = currDir
                                };

                                share.FileShareOwners = new System.Data.Linq.EntitySet <Models.FileShareOwner>();
                                ///---Добавление в базу владельцев файловой шары
                                foreach (var owner in md.Owners)
                                {
                                    share.FileShareOwners.Add(new Models.FileShareOwner()
                                    {
                                        samAccountName = owner
                                    });
                                }

                                model.FileShares.InsertOnSubmit(share);
                                model.SubmitChanges();
                            }
                        }
                        Build(di.FullName);
                    }
                }
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Сохраняю запросы пользователя на приложения
        /// акцептирование айтишниками и владельцами
        /// </summary>
        /// <param name="data"></param>
        public void SaveApplications(Models.ApplicationView data)
        {
            using (OfficeMapper.Models.PhonesDataContext model = new Models.PhonesDataContext())
            {
                Models.AuthUser user = Lib.ADAuth.GetUser(data.User.UTNLogin);

                #region TODO: Applications
                /////----Проверяю все поданные заявки и сохраняю их в базе
                //foreach (var app in data.Applications)
                //{
                //    ///---Если записи нет - добавляю
                //    if(model.AssignedServices.Count(x=>x.UserId == user.Id
                //    && x.ServiceId == app.Id) == 0 && app.UserClamed == true)
                //    {
                //        model.AssignedServices.InsertOnSubmit(new Models.AssignedService() {
                //            ServiceId = app.Id,
                //            UserId = user.Id,
                //            UserClaimed = app.UserClamed
                //        });
                //        model.SubmitChanges();

                //        ///---Если это не режим инвентаризации, отправляю заявки по каждому приложению отдельно
                //        if(bool.Parse(System.Configuration.ConfigurationManager.AppSettings["learningMode"]) != true)
                //        {
                //            ///---Создаем новый запрос на сервис
                //            AcceptRequest ar = new AcceptRequest() {
                //                ServiceId = app.Id,
                //                ServiceType = ServiceTypeEnum.UserService,
                //                RequestDate = DateTime.Now,
                //                UserId = user.sAMAccountName,
                //                RequestStage = StageEnum.NewRequest,
                //                Secret =Guid.NewGuid().ToString()
                //            };
                //            var wfManager = new StandardKernel(new AcceptingWorkflowBindingModule(ServiceTypeEnum.UserService)).Get<AcceptingWorkflowManager>();
                //            wfManager.Save(ar);
                //            //ApproveClaimRequest(user.sAMAccountName, app.Id);
                //        }
                //    }


                //    ///--Если запись есть, но нет галки - удаляю
                //    if (model.AssignedServices.Count(x => x.UserId == user.Id
                //     && x.ServiceId == app.Id) > 0 && app.UserClamed == false)
                //    {
                //        var deleteRec = model.AssignedServices.First(x => x.UserId == user.Id
                //     && x.ServiceId == app.Id);
                //        model.AssignedServices.DeleteOnSubmit(deleteRec);
                //        model.SubmitChanges();
                //    }
                //}
                #endregion

                #region TODO: Shares
                /////----Проверяю все поданные заявки и сохраняю их в базе
                //foreach (var app in data.Applications)
                //{
                //    ///---Если записи нет - добавляю
                //    if (model.AssignedServices.Count(x => x.UserId == user.Id
                //     && x.ServiceId == app.Id) == 0 && app.UserClamed == true)
                //    {
                //        model.AssignedServices.InsertOnSubmit(new Models.AssignedService()
                //        {
                //            ServiceId = app.Id,
                //            UserId = user.Id,
                //            UserClaimed = app.UserClamed
                //        });
                //        model.SubmitChanges();

                //        ///---Если это не режим инвентаризации, отправляю заявки по каждому приложению отдельно
                //        if (bool.Parse(System.Configuration.ConfigurationManager.AppSettings["learningMode"]) != true)
                //        {
                //            ///---Создаем новый запрос на сервис
                //            AcceptRequest ar = new AcceptRequest()
                //            {
                //                ServiceId = app.Id,
                //                ServiceType = ServiceTypeEnum.UserService,
                //                RequestDate = DateTime.Now,
                //                UserId = user.sAMAccountName,
                //                RequestStage = StageEnum.NewRequest,
                //                Secret = Guid.NewGuid().ToString()
                //            };
                //            var wfManager = new StandardKernel(new AcceptingWorkflowBindingModule(ServiceTypeEnum.UserService)).Get<AcceptingWorkflowManager>();
                //            wfManager.Save(ar);
                //            //ApproveClaimRequest(user.sAMAccountName, app.Id);
                //        }
                //    }


                //    ///--Если запись есть, но нет галки - удаляю
                //    if (model.AssignedServices.Count(x => x.UserId == user.Id
                //     && x.ServiceId == app.Id) > 0 && app.UserClamed == false)
                //    {
                //        var deleteRec = model.AssignedServices.First(x => x.UserId == user.Id
                //     && x.ServiceId == app.Id);
                //        model.AssignedServices.DeleteOnSubmit(deleteRec);
                //        model.SubmitChanges();
                //    }
                //}
                #endregion

                #region Application Inventarization
                ///---Если это режим инвентаризации, перечень всех приложений на утверждение Техответственных
                if (bool.Parse(System.Configuration.ConfigurationManager.AppSettings["learningMode"]) == true)
                {
                    ///---Создаю пачку запросов с одним Secret для
                    List <AcceptRequest> ars = new List <AcceptRequest>();
                    string Secret            = Guid.NewGuid().ToString();
                    foreach (var app in data.Applications.Where(x => x.UserClamed == true).ToList())
                    {
                        model.AssignedServices.InsertOnSubmit(new Models.AssignedService()
                        {
                            ServiceId   = app.Id,
                            UserId      = user.Id,
                            UserClaimed = app.UserClamed,
                            UTNLogin    = data.User.UTNLogin
                        });
                        model.SubmitChanges();

                        AcceptRequest ar = new AcceptRequest()
                        {
                            ServiceId    = app.Id,
                            ServiceType  = ServiceTypeEnum.UserService,
                            RequestDate  = DateTime.Now,
                            UTNLogin     = user.UTNLogin,
                            RequestStage = StageEnum.NewRequest,
                            Secret       = Secret
                        };
                        ars.Add(ar);
                    }

                    ///---Принимаю запросы на новые сеервисы, которые уже используются, но не проинвенчены
                    //foreach (var newService in )
                    //{

                    //}

                    ///---Сохраняю запрос
                    var wfManager = new StandardKernel(new AcceptingWorkflowBindingModule(ServiceTypeEnum.UserService)).Get <AcceptingWorkflowManager>();
                    wfManager.Save(ars);
                }
                #endregion

                #region TODO: Shares Inventarization
                /////---Если это режим инвентаризации, перечень всех приложений на утверждение Техответственных
                //if (bool.Parse(System.Configuration.ConfigurationManager.AppSettings["learningMode"]) == true)
                //{
                //    ///---Создаю пачку запросов с одним Secret для
                //    List<AcceptRequest> ars = new List<AcceptRequest>();
                //    string Secret = Guid.NewGuid().ToString();
                //    foreach (var app in data.Applications.Where(x => x.UserClamed == true).ToList())
                //    {
                //        AcceptRequest ar = new AcceptRequest()
                //        {
                //            ServiceId = app.Id,
                //            ServiceType = ServiceTypeEnum.UserService,
                //            RequestDate = DateTime.Now,
                //            UserId = user.sAMAccountName,
                //            RequestStage = StageEnum.NewRequest,
                //            Secret = Secret
                //        };
                //        ars.Add(ar);
                //    }

                //    var wfManager = new StandardKernel(new AcceptingWorkflowBindingModule(ServiceTypeEnum.UserService)).Get<AcceptingWorkflowManager>();
                //    wfManager.Save(ars);
                //}
                #endregion
            }
        }
Ejemplo n.º 14
0
        public string SaveLogin()
        {
            using (Models.PhonesDataContext model = new Models.PhonesDataContext())
            {
                try {
                    var    content = Request.Content.ReadAsByteArrayAsync().Result;
                    string res     = System.Text.Encoding.UTF8.GetString(content);
                    res = res.Replace(@"\", @"\\");

                    var inv = JsonConvert.DeserializeObject <Models.CompInvent>(res);

                    model.EventLogs.InsertOnSubmit(new Models.EventLog()
                    {
                        Date        = DateTime.Now,
                        Description = res,
                        Name        = @"Json Request"
                    });
                    model.SubmitChanges();

                    foreach (string ip1 in inv.ip)
                    {
                        if (ip1.StartsWith("10."))
                        {
                            var          DomainUser = Lib.ADAuth.GetUserFromAD(inv.sAMAccountName);
                            Models.Login l          = new Models.Login()
                            {
                                sAMAccountName                     = inv.sAMAccountName,
                                IPAddress                          = ip1,
                                Date                               = DateTime.Now,
                                OsVersion                          = inv.osversion,
                                Email                              = DomainUser.email != null ? DomainUser.email : "",
                                FIO                                = DomainUser.FIO != null ? DomainUser.FIO : "",
                                DameWare                           = bool.Parse(inv.dameware),
                                CPU_freq                           = inv.CPU_freq != null?int.Parse(inv.CPU_freq) : 0,
                                                            GPU_HR = inv.GPU_HR != null?int.Parse(inv.GPU_HR) : 0,
                                                                         GPU_NAME = inv.GPU_NAME,
                                                                         CPU_name = inv.CPU_name,
                                                                         GPU_RAM  = inv.GPU_RAM != null?int.Parse(inv.GPU_RAM) : 0,
                                                                                        CompName                      = inv.compname,
                                                                                        errors                        = inv.errors,
                                                                                        osarch                        = inv.osarch,
                                                                                        RAM                           = inv.RAM != null?int.Parse(inv.RAM) : 0,
                                                                                                               GPU_VR = inv.GPU_VR != null?int.Parse(inv.GPU_VR) : 0,
                                                                                                                            ProfileSize = inv.userprofilesize,
                                                                                                                            ProfileName = inv.userprofile
                            };
                            model.Logins.InsertOnSubmit(l);
                            model.SubmitChanges();

                            int    TotalDiskSize   = 0;
                            int    TotalFreeSize   = 0;
                            string DriveInterfaces = "";
                            int    DrivesCount     = 0;

                            ///---Отбрабатываю данные по почте
                            if (inv.bases != null && inv.bases.Count > 0)
                            {
                                foreach (var b in inv.bases)
                                {
                                    Models.OdinC odinC = new Models.OdinC()
                                    {
                                        Info = b.Info,
                                        Name = b.Name
                                    };
                                    l.OdinCs.Add(odinC);
                                    model.SubmitChanges();
                                }
                            }

                            ///---Обрабатываю данные по почте
                            if (inv.mail != null && inv.mail.Count > 0)
                            {
                                int TotalMailSize = 0;
                                foreach (var m in inv.mail)
                                {
                                    var mail = new Models.Mail()
                                    {
                                        lable = m.lable,
                                        eml   = string.IsNullOrEmpty(m.eml) ? 0: int.Parse(m.eml),
                                        dbx   = string.IsNullOrEmpty(m.dbx) ? 0: int.Parse(m.dbx)
                                    };
                                    TotalMailSize += mail.eml.Value;
                                    TotalMailSize += mail.dbx.Value;

                                    l.Mails.Add(mail);
                                    model.SubmitChanges();
                                }
                                l.TotalMailSize = TotalMailSize;
                                model.SubmitChanges();
                            }

                            ///---Сохраняю физические диски
                            if (inv.HDDs != null && inv.HDDs.Count > 0)
                            {
                                foreach (var dd in inv.HDDs)
                                {
                                    var diskDrive = new Models.DiskDrive()
                                    {
                                        Interface = dd.disc_interface,
                                        Size      = int.Parse(dd.disc_size),
                                        Name      = dd.disc_name
                                    };
                                    l.DiskDrives.Add(diskDrive);
                                    model.SubmitChanges();

                                    ///---Сохраняю логические диски
                                    foreach (var ld in dd.LogicalDiscs)
                                    {
                                        TotalDiskSize += int.Parse(ld.Size);
                                        TotalFreeSize += int.Parse(ld.Free);

                                        var lDisk = new Models.LogicalDisk();
                                        lDisk.Free  = int.Parse(ld.Free);
                                        lDisk.Size  = int.Parse(ld.Size);
                                        lDisk.Label = ld.Lable;
                                        diskDrive.LogicalDisks.Add(lDisk);
                                        model.SubmitChanges();
                                    }

                                    DrivesCount     += 1;
                                    DriveInterfaces += dd.disc_interface + ",";
                                }

                                l.TotalFreeSize   = TotalFreeSize;
                                l.TotalHDDSize    = TotalDiskSize;
                                l.DriveCount      = DrivesCount;
                                l.DriveInterfaces = DriveInterfaces;
                                model.SubmitChanges();
                            }

                            ///---Сохраняю принтеры
                            if (inv.Printers != null && inv.Printers.Count > 0)
                            {
                                foreach (var p in inv.Printers)
                                {
                                    l.Printers.Add(new Models.Printer()
                                    {
                                        Default   = p.Default,
                                        Network   = p.Network,
                                        Server    = p.Server,
                                        ShareName = p.ShareName,
                                        Name      = p.Name
                                    });

                                    if (p.Default.ToLower() == "true")
                                    {
                                        l.DefaultPrinterName = p.Name;
                                    }

                                    model.SubmitChanges();
                                }
                            }

                            ///---Сохраняю программы
                            if (inv.programs != null && inv.programs.Count > 0)
                            {
                                foreach (var pr in inv.programs)
                                {
                                    l.UserPrograms.Add(new Models.UserProgram()
                                    {
                                        Name = pr.Name
                                    });
                                }
                                model.SubmitChanges();
                            }

                            ///---Сохраняю файлы
                            if (inv.allfiles != null && inv.allfiles.Count > 0)
                            {
                                foreach (var f in inv.allfiles)
                                {
                                    l.UserFiles.Add(new Models.UserFile()
                                    {
                                        Ext   = f.Ext,
                                        Lable = f.Lable,
                                        Size  = f.Size
                                    });
                                }
                                model.SubmitChanges();
                            }
                        }
                    }
                    model.SubmitChanges();

                    //List<string> patval = res.Trim().Trim('}').Trim('{').Split(',').ToList();

                    //string sAMAccountName = "";
                    //List<string> ip = new List<string>();
                    //string osversion = "";
                    //string dameware = "";
                    //string osarch = "";
                    //string RAM = "";
                    //string CPU_name = "";
                    //string CPU_freq = "";
                    //string GPU_NAME = "";
                    //string GPU_RAM = "";
                    //string GPU_HR = "";
                    //string GPU_VR = "";
                    //string HDDS = "";
                    //string error = "";
                    //bool bdameware = false;



                    //foreach (string pv in patval)
                    //{
                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "samaccountname") sAMAccountName = pv.Split(':')[1].Trim().Trim('"').Trim('\'');
                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "osversion") osversion = pv.Split(':')[1].Trim().Trim('"').Trim('\'');

                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "osarch") osarch = pv.Split(':')[1].Trim().Trim('"').Trim('\'');
                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "ram") RAM = pv.Split(':')[1].Trim().Trim('"').Trim('\'');
                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "cpu_name") CPU_name = pv.Split(':')[1].Trim().Trim('"').Trim('\'');
                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "cpu_freq") CPU_freq = pv.Split(':')[1].Trim().Trim('"').Trim('\'');
                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "gpu_name") GPU_NAME = pv.Split(':')[1].Trim().Trim('"').Trim('\'');
                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "gpu_ram") GPU_RAM = pv.Split(':')[1].Trim().Trim('"').Trim('\'');
                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "gpu_hr") GPU_HR = pv.Split(':')[1].Trim().Trim('"').Trim('\'');
                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "gpu_vr") GPU_VR = pv.Split(':')[1].Trim().Trim('"').Trim('\'');
                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "error") error = pv.Split(':')[1].Trim().Trim('"').Trim('\'');


                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "hdds")
                    //    {
                    //        HDDS = "";
                    //        List<string> rips = pv.Split(':')[1].Trim().Trim('[').Trim(']').Split(',').ToList();
                    //        foreach (string rip in rips)
                    //        {
                    //            HDDS += rip.Trim('"').Trim('\'');
                    //        }
                    //    }

                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "ip")
                    //    {
                    //        List<string> rips = pv.Split(':')[1].Trim().Trim('[').Trim(']').Split(',').ToList();
                    //        foreach (string rip in rips)
                    //        {
                    //            ip.Add(rip.Trim('"').Trim('\''));
                    //        }
                    //    }

                    //    if (pv.Split(':')[0].Trim().ToLower().Trim('"').Trim('\'') == "dameware")
                    //    {
                    //        dameware = pv.Split(':')[1].Trim().Trim('"').Trim('\'');
                    //        bdameware = bool.Parse(dameware);
                    //    }


                    //}


                    //foreach (string ip1 in ip)
                    //{
                    //    var DomainUser = Lib.ADAuth.GetUserFromAD(sAMAccountName);
                    //    model.Logins.InsertOnSubmit(new Models.Login()
                    //    {
                    //        sAMAccountName = sAMAccountName,
                    //        IPAddress = ip1,
                    //        Date = DateTime.Now,
                    //        OsVersion = osversion,
                    //        Email = DomainUser.email != null? DomainUser.email:"",
                    //        FIO = DomainUser.FIO != null ? DomainUser.FIO : "",
                    //        DameWare = bdameware,
                    //        CPU_freq = CPU_freq,
                    //        GPU_HR = GPU_HR,
                    //        GPU_NAME = GPU_NAME,
                    //        CPU_name = CPU_name,
                    //        GPU_RAM = GPU_RAM,
                    //        errors = error,
                    //        HDDS = HDDS,
                    //        osarch = osarch,
                    //        RAM = RAM,
                    //        GPU_VR = GPU_VR
                    //    });
                    //}
                    //model.SubmitChanges();
                }
                catch (Exception ex)
                {
                    model.EventLogs.InsertOnSubmit(new Models.EventLog()
                    {
                        Date        = DateTime.Now,
                        Description = ex.Message,
                        Name        = @"Json Request exception"
                    });
                    model.SubmitChanges();
                }
            }
            return("Ok");
        }
Ejemplo n.º 15
0
        public static void ImportAD()
        {
            using (OfficeMapper.Models.PhonesDataContext model = new Models.PhonesDataContext())
            {
                List <string> controllers = new List <string>();
                controllers.Add(System.Configuration.ConfigurationManager.AppSettings["kyivDC"]);
                controllers.Add(System.Configuration.ConfigurationManager.AppSettings["kremenDC"]);
                controllers.Add(System.Configuration.ConfigurationManager.AppSettings["odessaDC"]);
                controllers.Add(System.Configuration.ConfigurationManager.AppSettings["lvivDC"]);

                List <string> users = new List <string>();
                users.Add("anisimov");
                users.Add("demon1");
                users.Add("anisimov");
                users.Add("ranisimov");

                List <string> passwords = new List <string>();
                passwords.Add("");
                passwords.Add("");
                passwords.Add("");
                passwords.Add("");

                List <string> domains = new List <string>();
                domains.Add("ukrtransnafta.com");
                domains.Add("kremen.ukrtransnafta.com");
                domains.Add("odessa.ukrtransnafta.com");
                domains.Add("druzhba.ukrtransnafta.com");

                List <string> domainAlias = new List <string>();
                domainAlias.Add("kyiv");
                domainAlias.Add("kremen");
                domainAlias.Add("odesa");
                domainAlias.Add("lviv");

                List <string> ldap = new List <string>();
                ldap.Add("OU=Укртранснафта,DC=ukrtransnafta,DC=com");
                ldap.Add("OU=1UsersUTN,DC=kremen,DC=ukrtransnafta,DC=com");
                ldap.Add("OU=1UsersUTN,DC=odessa,DC=ukrtransnafta,DC=com");
                ldap.Add("CN=Users,DC=druzhba,DC=ukrtransnafta,DC=com");

                for (int i = 0; i < 4; i++)
                {
                    LdapConnection    lcon = new LdapConnection(controllers[i]);
                    NetworkCredential nc   = new NetworkCredential(users[i], passwords[i], domains[i]);
                    lcon.Credential = nc;
                    lcon.AuthType   = AuthType.Negotiate;
                    lcon.Bind(nc);

                    DirectoryEntry    de = new DirectoryEntry(@"LDAP://" + controllers[i] + @"/" + ldap[i], users[i], passwords[i]);
                    DirectorySearcher ds = new DirectorySearcher(de);
                    ds.SearchScope = System.DirectoryServices.SearchScope.Subtree;
                    ds.Filter      = "(&(objectCategory=User))";
                    ds.PropertiesToLoad.Add("mail");
                    ds.PropertiesToLoad.Add("phone");
                    ds.PropertiesToLoad.Add("sAMAccountName");
                    ds.PropertiesToLoad.Add("lastLogon");
                    SearchResultCollection collection = ds.FindAll();

                    foreach (SearchResult result in collection)
                    {
                        if (result.Properties["lastLogon"].Count > 0 &&
                            result.Properties["sAMAccountName"].Count > 0
                            )
                        {
                            DateTime lastLogon = DateTime.FromFileTime((long)result.Properties["lastLogon"][0]);
                            if (lastLogon > DateTime.Now.AddMonths(-12))
                            {
                                string sAMAccountName = result.Properties["sAMAccountName"][0].ToString();

                                string name   = result.Properties["sAMAccountName"][0] + @"@" + domainAlias[i];
                                string domain = domains[i];
                                string email  = result.Properties["mail"].Count > 0 ? result.Properties["mail"][0].ToString() : "";
                                string FIO    = result.Path.Split(',').Count() > 0
                                    ? result.Path.Split(',')[0].Split('=').Count() > 1
                                        ? result.Path.Split(',')[0].Split('=')[1]
                                        : ""
                                    : "";

                                ///---Добавляю только записи новые
                                if (model.Users.Count(x => x.UTNLogin == name) == 0)
                                {
                                    model.Users.InsertOnSubmit(new Models.User()
                                    {
                                        UTNLogin            = name,
                                        AccessKey           = Guid.NewGuid().ToString(),
                                        AccessKeyCreateTime = DateTime.Now,
                                        Domain = domainAlias[i],
                                        Email  = email,
                                        FIO    = FIO
                                    });
                                }
                            }
                        }
                    }
                    model.SubmitChanges();
                }
            }
        }