Esempio n. 1
0
        public int GetCountOfActiveParticipants(OrganizationalUnit organizationalUnit)
        {
            var db = new DbManager("...");

            db.CreateCommand("[dbo].[spr_CoursesByOrganizationalUnit]");
            db.AddIntegerParameter("ouId", organizationalUnit.Id);
            var courses = db.ExecuteDataTable().To <IEnumerable <Course> >();

            int counter = 0;

            foreach (var course in courses)
            {
                var activeParticipants = course
                                         .Participants
                                         .Where(x => x.IsA && x.IsB || x.IsC);

                counter += activeParticipants.Count();

                if (course.Name.Length > 150)
                {
                    throw new InvalidOperationException($"Course {course.Id} Name is too long.");
                }
            }

            return(counter);
        }
        public async Task <IActionResult> PutOrganizationalUnit([FromRoute] Guid id, [FromBody] OrganizationalUnit organizationalUnit)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != organizationalUnit.Id)
            {
                return(BadRequest());
            }

            _context.Entry(organizationalUnit).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!OrganizationalUnitExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public List <OrganizationalUnit> GetChildOUs(string ldapPath, OrganizationalUnit parentOU)
        {
            var childOUs = new List <OrganizationalUnit>();

            var childEntry    = new DirectoryEntry(ldapPath);
            var childSearcher = new DirectorySearcher(childEntry)
            {
                Filter = ("(objectCategory=organizationalUnit)"), SearchScope = SearchScope.OneLevel
            };

            foreach (SearchResult childResult in childSearcher.FindAll())
            {
                var childOU = new OrganizationalUnit
                {
                    Name          = childResult.Properties["ou"][0].ToString(),
                    LdapPath      = childResult.Path,
                    ADDomainRefId = parentOU.ADDomainRefId
                };
                childOU.SubOrganizationalUnits = GetChildOUs(childOU.LdapPath, childOU);

                childOUs.Add(childOU);

                unitOfWork.OrganizationalUnitRepository.Add(childOU);
            }

            return(childOUs);
        }
Esempio n. 4
0
        static void UpdateProgram(Guid organizationalUnitGuid)
        {
            ServiceFactory             factory   = new ServiceFactory();
            IOrganizationalUnitService ouService = factory.CreateOrganizationalUnitService();

            var oUnit = new OrganizationalUnit();

            // the following are required fields.
            oUnit.OrganizationalUnitGuid = new Guid(organizationalUnitGuid.ToString());
            oUnit.Name = "Updated Organization Unit";

            // the following are optional.

            bool success = ouService.Update(oUnit);

            if (!success)
            {
                Console.WriteLine("ErrorCode: " + ouService.LastError.ErrorCode);
                Console.WriteLine("ErrorMessage: " + ouService.LastError.ErrorCodeString);
            }
            else
            {
                Console.WriteLine(string.Format("User {0} was updated.", oUnit.Name));
            }
        }
        public ActionResult Edit(int?id)
        {
            OrganizationalUnit obj = OrganizationalUnitService.GetEdit((int)id);

            HelperMethod(obj);
            return(PartialView(obj));
        }
Esempio n. 6
0
        private void CreateNewPortalOrgUnit(DirectoryEntry entry, string parentPath, Guid guid, SyncTree syncTree)
        {
            try
            {
                AdLog.LogADObject(string.Format("New portal orgunit - creating under {0}", parentPath), entry.Path);
                OrganizationalUnit newOu = new OrganizationalUnit(Node.LoadNode(parentPath));

                UpdatePortalOrgUnitProperties(entry, newOu, syncTree);

                Common.UpdateLastSync(newOu, guid);
                //newOu.Save(); - update lastsync already saves node

                if (_portalContainers != null)
                {
                    if (!_portalContainers.ContainsKey(guid.ToString()))
                    {
                        _portalContainers.Add(guid.ToString(), newOu.Id);
                    }
                }
            }
            catch (Exception ex)
            {
                AdLog.LogException(ex);
            }
        }
        public ActionResult Create()
        {
            OrganizationalUnit obj = new OrganizationalUnit();

            HelperMethod(obj);
            return(View(obj));
        }
Esempio n. 8
0
        /// <summary>
        /// Metodo para eliminar el supervisor de una unidad organizacional
        /// </summary>
        /// <returns>Retorna un entero</returns>
        /// <param name="organizationalUnit">Unidad Organizacional a la cual se le eliminara el supervisor</param>
        public int RemoveUnitOverseer(OrganizationalUnit organizationalUnit)
        {
            List <ParameterDB> parameters = new List <ParameterDB>();

            try
            {
                parameters.Add(new ParameterDB(HRMResources.idou, SqlDbType.Int, organizationalUnit.id.ToString(), false));
                parameters.Add(new ParameterDB(HRMResources.exitvalue, SqlDbType.Int, true));
                List <ResultDB> results = ExecuteStoredProcedure(HRMResources.RemoveOrganizationalUnitOverseerStoredProcedure, parameters);
                int             result  = Int32.Parse(results[0].value);
                return(result);
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            catch (NullReferenceException ex)
            {
                throw ex;
            }
            catch (ArgumentNullException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 9
0
        private OrganizationalUnit GetOUList()
        {
            ActiveDirectory    _ad    = new ActiveDirectory();
            OrganizationalUnit rootOU = _ad.GetRootOU();

            return(rootOU);
        }
Esempio n. 10
0
        /// <summary>
        /// Metodo para obtener la informacion las cuentas, cursos o permisos de la base de datos
        /// </summary>
        /// <returns>Retorna un entero</returns>
        /// <param name="acpToConsult">Cuenta/Curso/Permiso del cual se obtiene la informacion</param>
        public AccountCoursePermit GetAccountCoursePermit(AccountCoursePermit acpToConsult)
        {
            List <ParameterDB>  parameters          = new List <ParameterDB>();
            AccountCoursePermit accountCoursePermit = null;
            DataTable           dataTable           = new DataTable();

            try
            {
                parameters.Add(new ParameterDB(ACPResources.id, SqlDbType.VarChar, acpToConsult.id.ToString(), false));
                dataTable = ExecuteConsultStoredProcedure(ACPResources.GetAccountCoursePermitStoredProcedure, parameters);
                DataRow row = dataTable.Rows[0];
                string  typeStringFormat = "No Facturable";
                int     typeNumeric      = Int32.Parse(row["TYPE"].ToString());
                if (typeNumeric == 1)
                {
                    typeStringFormat = "Facturable";
                }
                Employee employee = new Employee(Int32.Parse(row["EID"].ToString()), row["EFIRSTNAME"].ToString(), row["ELASTNAME"].ToString());
                accountCoursePermit = new AccountCoursePermit(row["ACPID"].ToString(),
                                                              row["NAME"].ToString(),
                                                              typeNumeric,
                                                              typeStringFormat,
                                                              Convert.ToDateTime(row["INITDATE"].ToString()),
                                                              Convert.ToDateTime(row["ENDDATE"].ToString()),
                                                              Int32.Parse(row["STATUS"].ToString()),
                                                              employee);
                List <CostCenter> costCenters = new List <CostCenter>();
                foreach (DataRow unitRow in dataTable.Rows)
                {
                    try
                    {
                        OrganizationalUnit organizationalUnit = new OrganizationalUnit(Int32.Parse(unitRow["OUID"].ToString()), unitRow["OUNAME"].ToString());
                        CostCenter         costCenter         = new CostCenter(organizationalUnit, unitRow["ACPID"].ToString());
                        costCenters.Add(costCenter);
                    }
                    catch (Exception ex)
                    {
                        return(null);
                    }
                }
                accountCoursePermit.associatedUnits = costCenters;
                return(accountCoursePermit);
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            catch (NullReferenceException ex)
            {
                throw ex;
            }
            catch (ArgumentNullException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 11
0
        /// <summary>
        /// Updates an existing organizational unit to the given values.
        /// </summary>
        /// <param name="updatedUnit">The updated unit.</param>
        /// <returns>MethodResult indicating success.</returns>
        public MethodResult UpdateOrganizationalUnit(OrganizationalUnit updatedUnit)
        {
            var adapter = DatabaseAdapterFactory.GetControllerInstance <IClipperDatabase>();

            if (updatedUnit.IsPrincipalUnit)
            {
                var current = adapter.GetOrganizationalUnitById(updatedUnit.Id);
                if (current.AdminMailAddress != updatedUnit.AdminMailAddress)
                {
                    var user       = adapter.GetUserByMailAddress(current.AdminMailAddress);
                    var tempResult = new UserController().ChangeMailAddress(user, updatedUnit.AdminMailAddress);
                    if (!tempResult.IsSucceeded())
                    {
                        return(tempResult);
                    }

                    tempResult = new UserController().ResetPassword(updatedUnit.AdminMailAddress);
                    if (!tempResult.IsSucceeded())
                    {
                        return(tempResult);
                    }
                }

                if (current.Name == updatedUnit.Name)
                {
                    return(new MethodResult());
                }
            }

            return(adapter.RenameOrganizationalUnit(updatedUnit.Id, updatedUnit.Name));
        }
Esempio n. 12
0
 public bool Delete(OrganizationalUnit orgUnit)
 {
     try
     {
         CredentialRepository credential = new CredentialRepository(_mySQLContext);
         credential.DN = orgUnit.DistinguishedName;
         DirectoryEntry    dirEntry = new DirectoryEntry(credential.Path, credential.User, credential.Pass);
         DirectorySearcher search   = new DirectorySearcher(dirEntry);
         search.Filter = ("distinguishedname=" + orgUnit.DistinguishedName);
         DirectoryEntry orgUnitFind = (search.FindOne()).GetDirectoryEntry();
         if (orgUnitFind != null)
         {
             orgUnitFind.DeleteTree();
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (System.DirectoryServices.DirectoryServicesCOMException e)
     {
         Console.WriteLine("\r\nUnexpected exception occurred:\r\n\t" + e.GetType() + ":" + e.Message);
         return(false);
     }
 }
Esempio n. 13
0
        static Guid CreateProgram()
        {
            ServiceFactory             factory   = new ServiceFactory();
            IOrganizationalUnitService ouService = factory.CreateOrganizationalUnitService();

            var program = new OrganizationalUnit();

            // the following are required fields.
            program.Name         = "A sample program created by API";
            program.Abbreviation = "TPCBA";
            program.IsProgram    = true;

            // the following are optional fields.
            Guid guid    = ouService.Create(program);
            bool success = guid != Guid.Empty;

            if (!success)
            {
                Console.WriteLine("ErrorCode: " + ouService.LastError.ErrorCode);
                Console.WriteLine("ErrorMessage: " + ouService.LastError.ErrorCodeString);
                return(Guid.Empty);
            }
            else
            {
                Console.WriteLine(string.Format("Program {0} was created.", program.Name));
                return(guid);
            }
        }
        private void OUAdd_Click(object sender, RoutedEventArgs e)
        {
            OrganizationalUnit newOU = null;

            var selected = AdministrationOUList.SelectedItems;

            foreach (var item in selected)
            {
                newOU = new OrganizationalUnit(
                    -1,
                    "newOU",
                    "",
                    null,
                    new ExtendedObservableCollection <TileableElement>(),
                    null);

                if (item is OrganizationalUnit)
                {
                    (item as OrganizationalUnit).Elements.AddOnUI(newOU);
                }
            }

            if (selected.Count > 0)
            {
                AdministrationOUList.SelectedItems.Clear();
                AdministrationOUList.SelectedItems.Add(newOU);
            }
        }
Esempio n. 15
0
        public void OrganizationalUnit_Constructor()
        {
            Node parent = Repository.Root; 

            OrganizationalUnit target = new OrganizationalUnit(parent);

            Assert.IsNotNull(target, "1. OrganizationalUnit is null.");
        }
        public ActionResult DeleteConfirmed(int id)
        {
            OrganizationalUnit organizationalUnit = db.OrganizationalUnits.Find(id);

            db.OrganizationalUnits.Remove(organizationalUnit);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 17
0
        public void OrganizationalUnit_Constructor()
        {
            Node parent = Repository.Root;

            OrganizationalUnit target = new OrganizationalUnit(parent);

            Assert.IsNotNull(target, "1. OrganizationalUnit is null.");
        }
Esempio n. 18
0
        public int GetCountOfActiveParticipants(OrganizationalUnit organizationalUnit)
        {
            var courses = courseRepository.GetByOwner(organizationalUnit);

            return(courses
                   .Select(c => c.ActiveParticipants.Count)
                   .Sum());
        }
Esempio n. 19
0
 public OrganizationalUnit Update(OrganizationalUnit orgUnit)
 {
     try
     {
         CredentialRepository credential = new CredentialRepository(_mySQLContext);
         credential.DN = orgUnit.DistinguishedName;
         DirectoryEntry    dirEntry = new DirectoryEntry(credential.Path, credential.User, credential.Pass);
         DirectorySearcher search   = new DirectorySearcher(dirEntry);
         search.Filter = ("ou=" + orgUnit.SamAccountName);
         SearchResult result = search.FindOne();
         if (result != null)
         {
             DirectoryEntry newOrganizationalUnit = result.GetDirectoryEntry();
             if (!String.IsNullOrWhiteSpace(orgUnit.Description))
             {
                 newOrganizationalUnit.Properties["description"].Value = orgUnit.Description;
             }
             if (!String.IsNullOrWhiteSpace(orgUnit.City))
             {
                 newOrganizationalUnit.Properties["l"].Value = orgUnit.City;
             }
             if (!String.IsNullOrWhiteSpace(orgUnit.State))
             {
                 newOrganizationalUnit.Properties["st"].Value = orgUnit.State;
             }
             if (!String.IsNullOrWhiteSpace(orgUnit.State))
             {
                 newOrganizationalUnit.Properties["street"].Value = orgUnit.Street;
             }
             if (!String.IsNullOrWhiteSpace(orgUnit.State))
             {
                 newOrganizationalUnit.Properties["postalcode"].Value = orgUnit.PostalCode;
             }
             if (!String.IsNullOrWhiteSpace(orgUnit.State))
             {
                 newOrganizationalUnit.Properties["c"].Value = orgUnit.Country;
             }
             if (!String.IsNullOrWhiteSpace(orgUnit.State))
             {
                 newOrganizationalUnit.Properties["managedBy"].Value = orgUnit.Manager;
             }
             newOrganizationalUnit.CommitChanges();
             dirEntry.Close();
             newOrganizationalUnit.Close();
             return(FindByName(credential, orgUnit.Name));
         }
         else
         {
             Console.WriteLine("\r\nUser not identify:\r\n\t");
             return(null);
         }
     }
     catch (System.DirectoryServices.DirectoryServicesCOMException e)
     {
         Console.WriteLine("\r\nUnexpected exception occurred:\r\n\t" + e.GetType() + ":" + e.Message);
         return(null);
     }
 }
Esempio n. 20
0
        /// <summary>
        /// Create a new organisation unit, if the given parent exist.
        /// </summary>
        /// <param name="name">Name of the new organisation unit</param>
        /// <param name="parentFQDN">FQDN of the parent of this organisation unit</param>
        public int CreateOU(string name, string parentFQDN, DateTime updateTime)
        {
            using (var dataContext = DataContextFactory.CreateDataContext())
            {
                try
                {
                    var newOU = new OrganizationalUnit();

                    newOU.Name       = name;
                    newOU.LastUpdate = updateTime.Ticks;

                    if (parentFQDN == null || parentFQDN.Length < 1)
                    {
                        newOU.Parent     = null;
                        newOU.LastUpdate = null;
                        newOU.FQDN       = newOU.Name;
                    }
                    else
                    {
                        var existParent = (from p in dataContext.OrganizationalUnit
                                           let parent = p.FQDN == parentFQDN
                                                        where parent
                                                        orderby p.Parent ascending
                                                        select p).FirstOrDefault();

                        if (existParent == null)
                        {
                            newOU.Parent     = null;
                            newOU.LastUpdate = null;
                            newOU.FQDN       = newOU.Name;
                        }
                        else
                        {
                            newOU.FQDN   = existParent.FQDN + "." + name;
                            newOU.Parent = existParent.ID;
                        }
                    }

                    dataContext.OrganizationalUnit.InsertOnSubmit(newOU);
                    dataContext.SubmitChanges();

                    return(newOU.ID);
                }
                catch (Exception e)
                {
                    //parentFQDN isn't in the db
                    var messageEx1 = new StringBuilder();
                    messageEx1.Append("OUManager_CreateOU: ");
                    messageEx1.Append("creating OU" + name + " with parent " + parentFQDN + " failed. " + e.ToString());
                    MISD.Core.Logger.Instance.WriteEntry(messageEx1.ToString(), LogType.Exception);

                    // exception is used in the Client-Webservice to return that this OU isn't available
                    throw new InvalidOperationException("Create OU. The parent FQDN dosn't exist.");
                }
            }
        }
Esempio n. 21
0
        public IHttpActionResult GetById(int id)
        {
            OrganizationalUnit unit = _repository.GetById(id);

            if (unit == null)
            {
                return(NotFound());
            }
            return(Ok(unit));
        }
 public ActionResult Edit([Bind(Include = "OrganizationalUnitID,UnitName")] OrganizationalUnit organizationalUnit)
 {
     if (ModelState.IsValid)
     {
         db.Entry(organizationalUnit).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(organizationalUnit));
 }
Esempio n. 23
0
 public IHttpActionResult Post([FromBody] OrganizationalUnit organizationalUnit)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest());
     }
     organizationalUnit.Id = OrganizationalUnit.GetNextId(_context);
     _context.OrganizationalUnits.Add(organizationalUnit);
     _context.SaveChanges();
     return(Created(new Uri(Request.RequestUri + "/" + organizationalUnit.Id), organizationalUnit));
 }
Esempio n. 24
0
 private void PopulateTreeview(OrganizationalUnit rootOU, TreeNode node)
 {
     foreach (OrganizationalUnit OU in rootOU.Childs)
     {
         TreeNode childNode = node.Nodes.Add(OU.Name);
         childNode.Name  = OU.Name;
         childNode.Text += " (" + OU.ComputerCount + ")";
         childNode.Tag   = OU;
         PopulateTreeview(OU, childNode);
     }
 }
        public ActionResult Create([Bind(Include = "OrganizationalUnitID,UnitName")] OrganizationalUnit organizationalUnit)
        {
            if (ModelState.IsValid)
            {
                db.OrganizationalUnits.Add(organizationalUnit);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(organizationalUnit));
        }
Esempio n. 26
0
 public override void Execute()
 {
     try
     {
         DAOUnitManagement dao = new DAOUnitManagement();
         result = dao.GetOverseerUnit(ouToConsult);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        public async Task <IActionResult> PostOrganizationalUnit([FromBody] OrganizationalUnit organizationalUnit)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.OrganizationalUnits.Add(organizationalUnit);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetOrganizationalUnit", new { id = organizationalUnit.Id }, organizationalUnit));
        }
Esempio n. 28
0
        public IEnumerable <OrganizationalUnit> GetOldestYoungest()
        {
            List <OrganizationalUnit> list = new List <OrganizationalUnit>();

            OrganizationalUnit oldest   = db.OrganizationalUnits.OrderBy(x => x.EstablishmentYear).First();
            OrganizationalUnit youngest = db.OrganizationalUnits.OrderByDescending(x => x.EstablishmentYear).First();

            list.Add(oldest);
            list.Add(youngest);

            return(list.OrderBy(x => x.EstablishmentYear));
        }
Esempio n. 29
0
        /// <summary>
        /// Metodo que lista todas las unidades organizacionales
        /// </summary>
        /// <returns>Retorna una lista</returns>
        public List <OrganizationalUnit> GetAllOrganizationalUnits()
        {
            List <OrganizationalUnit> ouList = new List <OrganizationalUnit>();
            DataTable dataTable = new DataTable();

            try
            {
                dataTable = ExecuteConsultStoredProcedure(HRMResources.GetAllOrganizationalUnitsStoredProcedure);
                OrganizationalUnit ou = null;
                foreach (DataRow row in dataTable.Rows)
                {
                    try
                    {
                        string employeeId = row["EMPLOYEEID"].ToString();
                        if (!employeeId.Equals(""))
                        {
                            ou = new OrganizationalUnit(Int32.Parse(row["OUID"].ToString()),
                                                        row["OUNAME"].ToString(),
                                                        Int32.Parse(row["EMPLOYEEID"].ToString()));
                        }
                        else
                        {
                            ou = new OrganizationalUnit(Int32.Parse(row["OUID"].ToString()),
                                                        row["OUNAME"].ToString(),
                                                        0);
                        }
                        ouList.Add(ou);
                    }
                    catch (Exception ex)
                    {
                        return(null);
                    }
                }
                return(ouList);
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            catch (NullReferenceException ex)
            {
                throw ex;
            }
            catch (ArgumentNullException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 30
0
        // GET api/OrganizationalUnit/5
        public IHttpActionResult Get(int id)
        {
            OrganizationalUnit OUnitInDB = null;

            OUnitInDB = _context.OrganizationalUnits.FirstOrDefault(d => d.Id == id);

            if (OUnitInDB == null)
            {
                return(NotFound());
            }

            return(Ok(OUnitInDB));
        }
Esempio n. 31
0
 private void FillTreeview()
 {
     try
     {
         OrganizationalUnit rootOU = GetOUList();
         _rootNode.Name = rootOU.Name;
         _rootNode.Text = rootOU.Name;
         this.PopulateTreeview(rootOU, _rootNode);
     }
     catch (Exception ex)
     {
         MessageBox.Show(_localize.GetLocalizedString("UnableToBrowseAD") + ex.Message);
     }
 }