コード例 #1
0
        public IEnumerable <Organogram> GetOrganogram(Organogram _Organogram)
        {
            Organogram CMD = new Organogram();
            Organogram APD = new Organogram();

            if (_Organogram.Title == "D")
            {
                if (_Organogram != null && _Organogram.HomePhone != null)
                {
                    CMD = getChannelMemberData(_Organogram.HomePhone);
                    if (CMD != null)
                    {
                        LIST_Organogram = getChildern(_Organogram.Title, CMD.EmployeeID, CMD.AccTypeId);

                        foreach (var members in LIST_Organogram.ToList())
                        {
                            TempList_Organogram = getChildern(members.Title, members.EmployeeID, members.AccTypeId);

                            if (TempList_Organogram.Count() != 0)
                            {
                                LIST_Organogram.AddRange(TempList_Organogram);
                            }
                        }
                    }
                }
            }
            else if (_Organogram.Title == "M")
            {
            }

            LIST_Organogram.Add(CMD);

            return(LIST_Organogram);
        }
コード例 #2
0
        public HttpResponseMessage GetOrganogram(HttpRequestMessage reqObject)
        {
            string     walletaccNo = string.Empty;
            Organogram _Organogram = new Organogram();

            _businessData = _IDataManipulation.GetBusinessData(reqObject);


            _requestedDataObject = _IDataManipulation.GetRequestedDataObject(reqObject);
            if (_requestedDataObject != null && _requestedDataObject.BusinessData != null)
            {
                _Organogram = JsonConvert.DeserializeObject <Organogram>(_requestedDataObject.BusinessData);
            }
            var result = _IOrganogramService.GetOrganogram(_Organogram);

            //var result = _IOrganogramService.GetChannelMemberData("01913584138");

            if (result != null)
            {
                _serviceResponse = _IDataManipulation.SetResponseObject(result, "information has been fetched successfully");
            }
            else
            {
                _serviceResponse = _IDataManipulation.SetResponseObject(result, "Data Not Found...");
            }
            _response = _IDataManipulation.CreateResponse(_serviceResponse, reqObject);
            return(_response);
        }
        public ActionResult OrganoRefresh()
        {
            List <Organogram> organogramList = new List <Organogram>();

            var tempOrgTop = db.Organograms.Where(w => w.Role == w.UpperRole).FirstOrDefault();

            Organogram orgNewSort = new Organogram();

            orgNewSort.Depart    = tempOrgTop.Depart;
            orgNewSort.Role      = tempOrgTop.Role;
            orgNewSort.UpperRole = tempOrgTop.UpperRole;
            organogramList.Add(orgNewSort);
            OrganogramRefresh(organogramList, orgNewSort.Role);

            using (var context = new ApplicationDbContext())
            {
                using (var dbContextTransaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        var orgaListDel = context.Organograms.ToList();
                        foreach (var old in orgaListDel)
                        {
                            context.Organograms.Remove(old);
                        }

                        context.Organograms.AddRange(organogramList);
                        context.SaveChanges();
                        dbContextTransaction.Commit();

                        //// context.SaveChanges();
                        //// Saving Longing Credential
                        //LoginInfoModel logingInfoModel = new LoginInfoModel();
                        //PopulateLoginInfoCredencial populateLoginInfoCredencial = new PopulateLoginInfoCredencial(logingInfoModel);
                        //logingInfoModel = populateLoginInfoCredencial.getLoginInfoCredencial();
                        //if (!populateLoginInfoCredencial.ValidateIPv4(logingInfoModel.LoginIp))
                        //{
                        //    return RedirectToAction("Login", "Account");
                        //}
                        //logingInfoModel.UsedModel = "LCModel";
                        //logingInfoModel.TypeOfAction = TypeOfAction.Insert;
                        //logingInfoModel.Data = Newtonsoft.Json.JsonConvert.SerializeObject(lcModelInsert);
                        //context.LoginInfoModels.Add(logingInfoModel);
                        //context.SaveChanges();
                        // Saving Longing Credential

                        //dbContextTransaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();
                    }
                }
            }



            return(RedirectToAction("Index"));
        }
        // GET: Organograms/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Organogram organogram = db.Organograms.Find(id);

            if (organogram == null)
            {
                return(HttpNotFound());
            }
            return(View(organogram));
        }
コード例 #5
0
        public void BuildOrganogram_ShouldBuildCorrectOrganogram()
        {
            // Arrange
            var        dataReaderMock = new Mock <DataReader>(); // Mock of Data Reader
            LineWriter lineWriter     = new LineWriter();

            List <EmployeeModel> employeeModelList = new List <EmployeeModel>();

            //Test Data
            EmployeeModel model1 = new EmployeeModel(3, 0, "A", "A", "A", "A", "A", "1", "2", "3");
            EmployeeModel model2 = new EmployeeModel(1, 2, "B", "B", "B", "B", "B", "1", "2", "3");
            EmployeeModel model3 = new EmployeeModel(4, 2, "C", "C", "B", "C", "C", "1", "2", "3");
            EmployeeModel model4 = new EmployeeModel(2, 0, "D", "D", "B", "D", "D", "1", "2", "3");
            EmployeeModel model5 = new EmployeeModel(5, 1, "E", "E", "B", "E", "E", "1", "2", "3");

            employeeModelList.Add(model1);
            employeeModelList.Add(model2);
            employeeModelList.Add(model3);
            employeeModelList.Add(model4);
            employeeModelList.Add(model5);

            // Manual creating of organogram
            Employee        employee1     = new Employee(model1, 0);
            Employee        employee3     = new Employee(model3, 1);
            Employee        employee5     = new Employee(model5, 2);
            List <Employee> inferiorList2 = new List <Employee>();

            inferiorList2.Add(employee5);
            Employee        employee2     = new Employee(model2, inferiorList2, 1);
            List <Employee> expected      = new List <Employee>();
            List <Employee> inferiorList4 = new List <Employee>();

            inferiorList4.Add(employee2);
            inferiorList4.Add(employee3);
            Employee employee4 = new Employee(model4, inferiorList4, 0);

            expected.Add(employee1);
            expected.Add(employee4);


            dataReaderMock.Setup(x => x.ReadFromFile(It.IsAny <string>())).Returns(employeeModelList); // Mock method
            Organogram organogram = new Organogram(lineWriter, dataReaderMock.Object);

            // Act
            List <Employee> outputOgranogram = organogram.BuildOrganogram();

            // Assert
            CollectionAssert.AreEqual(expected, outputOgranogram);
        }
コード例 #6
0
        // GET: ArtWorks

        private void SortUpperRole(Organogram organogram)
        {
            var organo = db.Organograms.Where(w => w.Role == organogram.UpperRole).FirstOrDefault();

            //For Looping
            if (organo != null && organogram.Role != organogram.UpperRole)
            {
                ListOfupperRole.Add(organogram.Role);
                SortUpperRole(organo);
            }

            //For Non-Looping
            if (organo != null && organogram.Role == organogram.UpperRole)
            {
                ListOfupperRole.Add(organogram.Role);
            }
        }
        public void OrganogramRefresh(List <Organogram> organogramList, string role)
        {
            List <Organogram> organoList = db.Organograms.Where(o => o.UpperRole == role && o.UpperRole != o.Role).ToList();

            if (organoList.Count() > 0)
            {
                foreach (var ogl in organoList)
                {
                    Organogram orgNewSort = new Organogram();
                    orgNewSort.Depart    = ogl.Depart;
                    orgNewSort.Role      = ogl.Role;
                    orgNewSort.UpperRole = ogl.UpperRole;
                    organogramList.Add(orgNewSort);
                    OrganogramRefresh(organogramList, ogl.Role);
                }
            }
        }
        // GET: Organograms/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (db.Organograms.Min(o => o.Id) == id)
            {
                return(RedirectToAction("Index"));
            }
            Organogram organogram = db.Organograms.Find(id);

            if (organogram == null)
            {
                return(HttpNotFound());
            }
            return(View(organogram));
        }
        public ActionResult Create([Bind(Include = "Id,Depart,Role,UpperRole")] Organogram organogram)
        {
            MembershipHelp mHelp = new MembershipHelp(); var role = mHelp.logingUserRole(User.Identity.Name);
            var            roleId    = db.RoleMasters.Where(w => w.Name == role).Select(s => s.Id).FirstOrDefault();
            var            canCreate = (from m in db.MenuInfoes join rm in db.RoleMenuMappings on m.Id equals rm.MenuInfoId where m.MenuURL.Contains("Organograms") && rm.RoleId == roleId select rm.CanCreate).FirstOrDefault();


            var upperNotExisted = db.Organograms.Where(w => w.Role == organogram.UpperRole).FirstOrDefault();


            if (!canCreate || upperNotExisted == null || db.Organograms.Where(w => w.Role == organogram.Role).Count() > 0)
            {
                return(RedirectToAction("Index"));
            }



            if (ModelState.IsValid)
            {
                // Saving Longing Credential
                LoginInfoModel logingInfoModel = new LoginInfoModel();
                PopulateLoginInfoCredencial populateLoginInfoCredencial = new PopulateLoginInfoCredencial(logingInfoModel);
                logingInfoModel = populateLoginInfoCredencial.getLoginInfoCredencial();
                if (!populateLoginInfoCredencial.ValidateIPv4(logingInfoModel.LoginIp))
                {
                    return(RedirectToAction("Login", "Account"));
                }
                logingInfoModel.UsedModel    = "Organogram";
                logingInfoModel.TypeOfAction = TypeOfAction.Insert;
                logingInfoModel.Data         = Newtonsoft.Json.JsonConvert.SerializeObject(organogram);
                logingInfoModel.SysDate      = DateTime.Now;
                db.LoginInfoModels.Add(logingInfoModel);
                db.SaveChanges();
                // Saving Longing Credential


                db.Organograms.Add(organogram);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(organogram));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            MembershipHelp mHelp = new MembershipHelp(); var role = mHelp.logingUserRole(User.Identity.Name);
            var            roleId    = db.RoleMasters.Where(w => w.Name == role).Select(s => s.Id).FirstOrDefault();
            var            canDelete = (from m in db.MenuInfoes join rm in db.RoleMenuMappings on m.Id equals rm.MenuInfoId where m.MenuURL.Contains("Organograms") && rm.RoleId == roleId select rm.CanDelete).FirstOrDefault();

            if (!canDelete || db.Organograms.Min(o => o.Id) == id)
            {
                return(RedirectToAction("Index"));
            }

            using (var context = new ApplicationDbContext())
            {
                using (var dbContextTransaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        Organogram organogram = context.Organograms.Find(id);

                        List <LoginInfoModel> logingInfoModelList = new List <LoginInfoModel>();
                        // Saving Longing Credential
                        LoginInfoModel logingInfoModel = new LoginInfoModel();
                        PopulateLoginInfoCredencial populateLoginInfoCredencial = new PopulateLoginInfoCredencial(logingInfoModel);
                        logingInfoModel = populateLoginInfoCredencial.getLoginInfoCredencial();
                        if (!populateLoginInfoCredencial.ValidateIPv4(logingInfoModel.LoginIp))
                        {
                            return(RedirectToAction("Login", "Account"));
                        }

                        logingInfoModel.UsedModel    = "Organogram";
                        logingInfoModel.TypeOfAction = TypeOfAction.Delete;
                        logingInfoModel.Data         = Newtonsoft.Json.JsonConvert.SerializeObject(organogram);
                        logingInfoModel.SysDate      = DateTime.Now;
                        logingInfoModelList.Add(logingInfoModel);

                        var DeletedRoleEntity = context.Organograms.Where(w => w.Id == organogram.Id).FirstOrDefault();
                        var Role      = DeletedRoleEntity.Role;
                        var UpperRole = DeletedRoleEntity.UpperRole;

                        foreach (var organogramUpdate in context.Organograms.Where(w => w.UpperRole == Role).ToList())
                        {
                            organogramUpdate.UpperRole = UpperRole;
                            LoginInfoModel logingInfoModelOne = new LoginInfoModel();
                            PopulateLoginInfoCredencial populateLoginInfoCredencialOne = new PopulateLoginInfoCredencial(logingInfoModelOne);
                            logingInfoModelOne = populateLoginInfoCredencialOne.getLoginInfoCredencial();
                            if (!populateLoginInfoCredencialOne.ValidateIPv4(logingInfoModelOne.LoginIp))
                            {
                                return(RedirectToAction("Login", "Account"));
                            }

                            logingInfoModelOne.UsedModel    = "Organogram";
                            logingInfoModelOne.TypeOfAction = TypeOfAction.Update;
                            logingInfoModelOne.Data         = Newtonsoft.Json.JsonConvert.SerializeObject(organogramUpdate);
                            logingInfoModelOne.SysDate      = DateTime.Now;
                            logingInfoModelList.Add(logingInfoModelOne);
                        }
                        context.LoginInfoModels.AddRange(logingInfoModelList);
                        context.Organograms.Remove(organogram);
                        context.SaveChanges();
                        dbContextTransaction.Commit();

                        return(RedirectToAction("Index"));
                    }
                    catch (System.Data.Entity.Infrastructure.DbUpdateConcurrencyException ex)
                    {
                        dbContextTransaction.Rollback();
                    }
                    catch (System.Data.Entity.Core.EntityCommandCompilationException ex)
                    {
                        dbContextTransaction.Rollback();
                    }
                    catch (System.Data.Entity.Core.UpdateException ex)
                    {
                        dbContextTransaction.Rollback();
                    }

                    catch (System.Data.Entity.Infrastructure.DbUpdateException ex) //DbContext
                    {
                        dbContextTransaction.Rollback();
                    }

                    catch (Exception ex)
                    {
                        dbContextTransaction.Rollback();
                    }
                }
            }


            Organogram organogramTemp = db.Organograms.Find(id);

            if (organogramTemp == null)
            {
                return(HttpNotFound());
            }
            return(View(organogramTemp));
        }
        public ActionResult Edit([Bind(Include = "Id,Depart,Role,UpperRole")] Organogram organogram)
        {
            MembershipHelp mHelp = new MembershipHelp(); var role = mHelp.logingUserRole(User.Identity.Name);
            var            roleId  = db.RoleMasters.Where(w => w.Name == role).Select(s => s.Id).FirstOrDefault();
            var            canEdit = (from m in db.MenuInfoes join rm in db.RoleMenuMappings on m.Id equals rm.MenuInfoId where m.MenuURL.Contains("Organograms") && rm.RoleId == roleId select rm.CanEdit).FirstOrDefault();

            if (!canEdit || db.Organograms.Min(o => o.Id) == organogram.Id || db.Organograms.Where(w => w.Id != organogram.Id && w.Role == organogram.Role).Count() > 0)
            {
                return(RedirectToAction("Index"));
            }


            if (ModelState.IsValid)
            {
                using (var context = new ApplicationDbContext())
                {
                    using (var dbContextTransaction = context.Database.BeginTransaction())
                    {
                        try
                        {
                            var organogramToUpdate = context.Organograms.Where(w => w.Id == organogram.Id).FirstOrDefault();
                            organogramToUpdate.Depart    = organogram.Depart;
                            organogramToUpdate.Role      = organogram.Role;
                            organogramToUpdate.UpperRole = organogram.UpperRole;

                            List <LoginInfoModel> logingInfoModelList = new  List <LoginInfoModel>();
                            // Saving Longing Credential
                            LoginInfoModel logingInfoModel = new LoginInfoModel();
                            PopulateLoginInfoCredencial populateLoginInfoCredencial = new PopulateLoginInfoCredencial(logingInfoModel);
                            logingInfoModel = populateLoginInfoCredencial.getLoginInfoCredencial();
                            if (!populateLoginInfoCredencial.ValidateIPv4(logingInfoModel.LoginIp))
                            {
                                return(RedirectToAction("Login", "Account"));
                            }

                            logingInfoModel.UsedModel    = "Organogram";
                            logingInfoModel.TypeOfAction = TypeOfAction.Update;
                            logingInfoModel.Data         = Newtonsoft.Json.JsonConvert.SerializeObject(organogramToUpdate);
                            logingInfoModel.SysDate      = DateTime.Now;
                            logingInfoModelList.Add(logingInfoModel);


                            string PreviousRole = context.Organograms.Where(w => w.Id == organogramToUpdate.Id).FirstOrDefault().Role;

                            foreach (var organogramUpdate in context.Organograms.Where(w => w.UpperRole == PreviousRole).ToList())
                            {
                                organogramUpdate.UpperRole = organogram.Role;

                                LoginInfoModel logingInfoModelOne = new LoginInfoModel();
                                PopulateLoginInfoCredencial populateLoginInfoCredencialOne = new PopulateLoginInfoCredencial(logingInfoModelOne);
                                logingInfoModelOne = populateLoginInfoCredencialOne.getLoginInfoCredencial();
                                if (!populateLoginInfoCredencialOne.ValidateIPv4(logingInfoModelOne.LoginIp))
                                {
                                    return(RedirectToAction("Login", "Account"));
                                }

                                logingInfoModelOne.UsedModel    = "Organogram";
                                logingInfoModelOne.TypeOfAction = TypeOfAction.Update;
                                logingInfoModelOne.Data         = Newtonsoft.Json.JsonConvert.SerializeObject(organogramUpdate);
                                logingInfoModelOne.SysDate      = DateTime.Now;
                                logingInfoModelList.Add(logingInfoModelOne);
                            }
                            context.LoginInfoModels.AddRange(logingInfoModelList);
                            context.Entry(organogramToUpdate).State = EntityState.Modified;
                            context.SaveChanges();
                            dbContextTransaction.Commit();

                            return(RedirectToAction("Index"));
                        }
                        catch (System.Data.Entity.Infrastructure.DbUpdateConcurrencyException ex)
                        {
                            dbContextTransaction.Rollback();
                        }
                        catch (System.Data.Entity.Core.EntityCommandCompilationException ex)
                        {
                            dbContextTransaction.Rollback();
                        }
                        catch (System.Data.Entity.Core.UpdateException ex)
                        {
                            dbContextTransaction.Rollback();
                        }

                        catch (System.Data.Entity.Infrastructure.DbUpdateException ex) //DbContext
                        {
                            dbContextTransaction.Rollback();
                        }

                        catch (Exception ex)
                        {
                            dbContextTransaction.Rollback();
                        }
                    }
                }
            }
            return(View(organogram));
        }