예제 #1
0
        private static void CreateUsers()
        {
            // cargar tiendas
            var stores = new StoreDataAccess().LoadAll(false);
            // cargar admin group
            var adminGroup = new GroupDataAccess().LoadAll(false)[0];

            UserDataAccess uda = new UserDataAccess();

            foreach (StoreEntity store in stores)
            {
                var ue = new UserEntity();
                ue.Name         = GetMaleName();
                ue.Surname      = GetLastName();
                ue.UserName     = GetUserName(ue.Name, ue.Surname);
                ue.IsUserActive = true;
                ue.Password     = Utilities.CalculateHashString("123");
                ue.PhoneNumber  = GetPhoneNumber();
                ue.Charge       = "Administrador";
                ue.Store        = store;

                // add user group
                var ug = new UserGroupEntity();
                ug.Group = adminGroup;
                ug.User  = ue;
                ue.UserGroup.Add(ug);

                // save user
                uda.Save(ue);
            }
        }
예제 #2
0
        public ActionResult List(string GroupName = "", int PageIndex = 1, int PageSize = 10)
        {
            try
            {
                //初始化物件
                var m = new GroupListViewModel();
                m.Authority  = Tool.GetPageAuthority();
                m.Parameters = new QueryParameter();
                m.Pages      = new Pages();

                //設定參數
                m.Parameters.GroupName = GroupName;
                m.Pages.PageIndex      = PageIndex;
                m.Pages.PageSize       = PageSize;

                //清單資料
                var dtGroup = GroupDataAccess.GetGroupList(null, m.Parameters.GroupName, m.Pages);
                m.List = Util.ToList <ListItem>(dtGroup);

                return(View(m));
            }
            catch
            {
                return(RedirectToAction("Error", "Home"));
            }
        }
예제 #3
0
        public ActionResult GetGroup(string id)
        {
            var dt   = GroupDataAccess.GetGroupList(id, null, new Pages());
            var list = Util.ToList <GroupItem>(dt);

            return(Json(list, JsonRequestBehavior.AllowGet));
        }
예제 #4
0
        public ActionResult Edit(string id)
        {
            try
            {
                //初始化物件
                var m = new GroupDetailViewModel();

                //取得群組資料
                var dtGroup   = GroupDataAccess.GetGroupList(id, null, new Pages());
                var listGroup = Util.ToList <GroupDetailViewModel>(dtGroup);
                m = listGroup[0];

                //取得排序過的選單清單
                var dtMenu = GroupDataAccess.GetGroupMenuAuth(id);
                m.AuthList = Util.ToList <MenuAuth>(dtMenu);

                //取得群組底下的使用者清單
                var dtGroupUser = GroupDataAccess.GetGroupUser(id);
                m.GroupUserItems = Util.ToList <GroupUserItem>(dtGroupUser);

                return(View("Detail", m));
            }
            catch
            {
                return(RedirectToAction("Error", "Home"));
            }
        }
예제 #5
0
        public Group AddGroup(string name, IntList studentIds)
        {
            if (!Context.PersonId.HasValue)
            {
                throw new UnassignedUserException();
            }
            if (string.IsNullOrEmpty(name))
            {
                throw new ChalkableException(string.Format(ChlkResources.ERR_PARAM_IS_MISSING_TMP, "Name"));
            }

            BaseSecurity.EnsureDistrictAdmin(Context);

            using (var uow = Update())
            {
                var da      = new GroupDataAccess(uow);
                var groupId = da.InsertWithEntityId(new Group {
                    Name = name, OwnerRef = Context.PersonId.Value
                });
                AssignStudentsToGroup(groupId, studentIds, uow);
                uow.Commit();
                var group = da.GetById(groupId);
                group.StudentCount = studentIds?.Count ?? 0;
                return(group);
            }
        }
예제 #6
0
        public ActionResult Edit(string id)
        {
            try
            {
                UserDetailViewModel m = new UserDetailViewModel();

                //取得使用者資料
                var dtList = UserDataAccess.GetUserList(null, id, null, null, null, new Pages());
                var list   = Util.ToList <UserDetailViewModel>(dtList); //清單資料
                m = list[0];

                //取得排序過的選單清單
                var dtMenu = UserDataAccess.GetUserMenuAuth(id);
                m.AuthList = Util.ToList <MenuAuth>(dtMenu);

                //取得使用者所屬的群組清單
                var dtGroup = GroupDataAccess.GetUserGroup(id);
                m.GroupItems = Util.ToList <GroupItem>(dtGroup);

                return(View("Detail", m));
            }
            catch
            {
                return(RedirectToAction("Error", "Home"));
            }
        }
예제 #7
0
 public void DeleteGroup(int groupId)
 {
     DoUpdate(u =>
     {
         var da = new GroupDataAccess(u);
         EnsureInGroupModifyPermission(da.GetById(groupId));
         da.Delete(groupId);
     });
 }
예제 #8
0
        public Dictionary <int, GroupInfo> GetAllGroupInfos(ref string errMessage)
        {
            Database db = DatabaseFactory.CreateDatabase();

            errMessage = "";
            Dictionary <int, GroupInfo> list = new Dictionary <int, GroupInfo>();

            try
            {
                GroupInfo  oGroupInfo;
                DeviceInfo oDevice;
                DataSet    ds = GroupDataAccess.GetAllGroupInfo(db);
                DataSet    dsDevice;
                DataSet    dsCamera;
                CameraInfo oCamera;
                DataSet    dsAlarm;
                AlarmInfo  oAlarm;
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    oGroupInfo            = new GroupInfo(ds.Tables[0].Rows[i]);
                    dsDevice              = DeviceDataAccess.GetDeviceInfoByGroupId(db, oGroupInfo.GroupID);
                    oGroupInfo.ListDevice = new Dictionary <int, DeviceInfo>();
                    foreach (DataRow dr in dsDevice.Tables[0].Rows)
                    {
                        oDevice            = new DeviceInfo(dr);
                        oDevice.ListCamera = new Dictionary <int, CameraInfo>();
                        dsCamera           = CameraDataAccess.GetCamInfoByDeviceId(db, oDevice.DeviceId);
                        foreach (DataRow drCam in dsCamera.Tables[0].Rows)
                        {
                            oCamera = new CameraInfo(drCam);
                            oDevice.ListCamera.Add(oCamera.CameraId, oCamera);
                        }

                        oDevice.ListAlarm = new Dictionary <int, AlarmInfo>();
                        dsAlarm           = AlarmDataAccess.GetAlarmInfoByDeviceId(db, oDevice.DeviceId);
                        foreach (DataRow drAlarm in dsAlarm.Tables[0].Rows)
                        {
                            oAlarm = new AlarmInfo(drAlarm);
                            oDevice.ListAlarm.Add(oAlarm.AlarmId, oAlarm);
                        }

                        oGroupInfo.ListDevice.Add(oDevice.DeviceId, oDevice);
                    }
                    list.Add(oGroupInfo.GroupID, oGroupInfo);
                }
                return(list);
            }
            catch (Exception ex)
            {
                errMessage = ex.Message + ex.StackTrace;
                logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
                return(null);
            }
        }
예제 #9
0
        public int Delete(ref string errMessage, int groupId)
        {
            Database db = DatabaseFactory.CreateDatabase();

            errMessage = "";
            try
            {
                return(GroupDataAccess.Delete(db, groupId));
            }
            catch (Exception ex)
            {
                errMessage = ex.Message + ex.StackTrace;
                logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
                return(-1);
            }
        }
예제 #10
0
        public int Insert(ref string errMessage, GroupInfo oGroupInfo)
        {
            Database db = DatabaseFactory.CreateDatabase();

            errMessage = "";
            try
            {
                return(GroupDataAccess.Insert(db, oGroupInfo));
            }
            catch (Exception ex)
            {
                errMessage = ex.Message + ex.StackTrace;
                logger.Error("Error Message:" + ex.Message + " Trace:" + ex.StackTrace);
                return(-1);
            }
        }
예제 #11
0
        public JsonResult Save(GroupDetailViewModel m)
        {
            Result r = new Result();

            try
            {
                GroupDataAccess.SaveGroupInfo(m);
                r.Set(ResultCode.Success, "作業成功");
            }
            catch (Exception e)
            {
                r.Set(ResultCode.Error, e.Message);
            }

            return(Json(r, JsonRequestBehavior.AllowGet));
        }
예제 #12
0
        public ActionResult Remove(string id)
        {
            Result r = new Result();

            try
            {
                GroupDataAccess.RemoveGroup(id);
                r.Set(ResultCode.Success, "作業成功");
            }
            catch (Exception e)
            {
                r.Set(ResultCode.Error, e.Message);
            }

            return(Json(r, JsonRequestBehavior.AllowGet));
        }
예제 #13
0
        public ActionResult Export(GroupListViewModel m)
        {
            //分頁物件,設定單頁筆數為最大值
            Pages pages = new Pages();

            pages.PageSize = int.MaxValue;

            //取回資料
            var dt = GroupDataAccess.GetGroupList(null, m.Parameters.GroupName, pages);

            //轉為二進位資料流
            var          numList = new List <int>();
            MemoryStream ms      = NPOITools.RenderDataTableToExcel(dt, numList) as MemoryStream;

            return(File(ms.ToArray(), "application/vnd.ms-excel"));
        }
예제 #14
0
        public ActionResult Add(string id)
        {
            try
            {
                //初始化物件
                var m = new GroupDetailViewModel();

                //取得排序過的選單清單
                var dtMenu = GroupDataAccess.GetGroupMenuAuth("0");
                m.AuthList = Util.ToList <MenuAuth>(dtMenu);

                return(View("Detail", m));
            }
            catch
            {
                return(RedirectToAction("Error", "Home"));
            }
        }
예제 #15
0
 public Group EditGroup(int groupId, string name, IntList studentIds)
 {
     if (string.IsNullOrEmpty(name))
     {
         throw new ChalkableException(string.Format(ChlkResources.ERR_PARAM_IS_MISSING_TMP, "Name"));
     }
     using (var uow = Update())
     {
         var da    = new GroupDataAccess(uow);
         var group = da.GetById(groupId);
         EnsureInGroupModifyPermission(group);
         group.Name = name;
         da.Update(group);
         AssignStudentsToGroup(groupId, studentIds, uow);
         uow.Commit();
         group.StudentCount = studentIds?.Count ?? 0;
         return(group);
     }
 }
예제 #16
0
 public Group()
 {
     groupDataAccess = new GroupDataAccess();
 }
예제 #17
0
        /// <summary>
        /// Inicializar los servicios WCF desde el administrador de sesiones.
        /// </summary>
        /// <returns>true si se inicializa con éxito.</returns>
        private bool InitSessionManager()
        {
            Uri    httpBaseAddress;
            string uriString;

            uriString       = "http://" + serverName + ":" + serverPort.ToString(CultureInfo.InvariantCulture) + "/SessionManager";
            httpBaseAddress = new Uri(uriString);

            UserDataAccess userDataAccess = new UserDataAccess();

            if (userDataAccess.LoadAll(false).Count == 0)
            {
                GroupDataAccess groupDataAccess = new GroupDataAccess();
                UserEntity      user            = new UserEntity();
                GroupEntity     group           = new GroupEntity();
                string[]        bussinesClasses = { "Category", "Campaign", "CustomerServiceData", "Customer", "DataModel", "Group", "Permission", "RegisterAssociation", "Service", "Store", "User", "UserAction" };

                user.Name         = "admin";
                user.Password     = Utilities.CalculateHashString("admin");
                user.Charge       = "admin";
                user.IsUserActive = true;
                user.PhoneNumber  = "0";
                user.Surname      = "admin";
                user.UserName     = "******";

                // Crear un grupo de administradores
                group.Name          = "admin";
                group.Description   = "admin group";
                group.IsGroupActive = true;
                group.Permissions   = new Collection <PermissionEntity>();

                foreach (String name in bussinesClasses)
                {
                    PermissionEntity permission = new PermissionEntity();
                    permission.BusinessClassName = name;
                    permission.AllowDelete       = true;
                    permission.AllowNew          = true;
                    permission.AllowRead         = true;
                    permission.AllowUpdate       = true;

                    group.Permissions.Add(permission);
                }

                UserGroupEntity userGroupEntity = new UserGroupEntity();
                Collection <UserGroupEntity> userGroupEntities = new Collection <UserGroupEntity>();
                userGroupEntity.Group = group;

                groupDataAccess.Save(group);

                userGroupEntities.Add(userGroupEntity);
                user.UserGroup = userGroupEntities;

                userDataAccess.Save(user);
            }

            try
            {
                ServiceHost      host    = new ServiceHost(SessionManager.Instance, httpBaseAddress);
                BasicHttpBinding binding = new BasicHttpBinding();

                host.AddServiceEndpoint(typeof(ISessionManager), binding, httpBaseAddress);

                ValidationService.Instance.SessionManager = SessionManager.Instance;
                // Habilitar conexión
                if (!host.Description.Behaviors.Contains(typeof(ServiceMetadataBehavior)))
                {
                    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
                    smb.HttpGetEnabled = true;
                    host.Description.Behaviors.Add(smb);
                }

                // Abrir servicio
                host.Open();
                ConsoleWriter.SetText(httpBaseAddress.AbsoluteUri + " WS Initialized...");
                Debug.WriteLine(httpBaseAddress.AbsoluteUri + " WS Initialized...");

                lock (hostedServices)
                {
                    hostedServices.Add("SessionManager", host);
                }

                serverSession = SessionManager.Instance.ValidateUser("admin", Utilities.CalculateHashString("admin"));

                return(true);
            }
            catch (InvalidOperationException initError)
            {
                ConsoleWriter.SetText("Error initializing " + httpBaseAddress.AbsoluteUri + " service. ERROR : " + initError.Message);
            }
            catch (CommunicationException initError)
            {
                ConsoleWriter.SetText("Error initializing " + httpBaseAddress.AbsoluteUri + " service. ERROR : " + initError.Message);
            }
            return(false);
        }
예제 #18
0
 public GroupBusinessLogic()
 {
     this.groupDataAccess = new GroupDataAccess();
 }