public int CreateMeeting(Meeting meeting)
        {
            var param = new Dictionary <string, object>();

            param.Add(nameof(meeting.Title), meeting.Title);
            param.Add(nameof(meeting.Description), meeting.Description);
            param.Add(nameof(meeting.Time), meeting.Time);
            param.Add(nameof(meeting.CreatedBy), 2); //Take userId of logged in user from Thread.CurrentPrincipal
            return(repository.ExecuteCommand("CREATE_MEETING", param));
        }
        public void DeleteProjectUserRole(int userId)
        {
            var deleteSql = string.Format("DELETE FROM dbo.ProjectPermissions WHERE UserId = {0} ", userId);

            _projectRoleRepository.ExecuteCommand(deleteSql);
            _unitOfWork.SaveChanges();
        }
Esempio n. 3
0
        public int SignUp(Visitor visitor)
        {
            var param = new Dictionary <string, object>();

            param.Add(nameof(visitor.Username), visitor.Username);
            param.Add(nameof(visitor.Password), visitor.Password);
            var userId = repository.ExecuteCommand("SIGNUP", param);

            return(userId);
        }
Esempio n. 4
0
        public RectArea GetRectArea(IRepository <DataAccess.DFOdata> dfoDataRepository)
        {
            const string sqlQuery = "select max(X) as MaxX, min(X) as MinX, max(Y) as MaxY, min(Y) as MinY from dbo.DFOdata";
            var          rectArea = dfoDataRepository.ExecuteCommand <RectArea>(sqlQuery);

            if (rectArea == null)
            {
                throw new Exception("Can't get the rect area !!");
            }
            return(rectArea.ElementAt(0));
        }
Esempio n. 5
0
        private bool SetUserPrivilagesByRole(int roleId, int menuId)
        {
            string query =
                string.Format(
                    @"INSERT INTO UserPrivileges(UserId, MenuId, IsActive, FullPermission, ViewPermission, AddPermission, EditPermission, DeletePermission, DetailViewPermission, ReportViewPermission)
                                           SELECT u.Id as UserId, m.Id as MenuId, 1 as IsActive, 1 as FullPermission, 1 as ViewPermission, 1 as AddPermission, 1 as EditPermission, 1 as DeletePermission, 1 as DetailViewPermission, 1 as ReportViewPermission
                                           FROM Users u
                                           INNER JOIN Menus m
                                           ON u.RoleId = m.RoleId
                                           WHERE u.RoleId = {0} and m.Id = {1}",
                    roleId, menuId);

            return(_userPrivilege.ExecuteCommand(query) > 0);
        }
Esempio n. 6
0
        private void BySpiralFasion(StreamWriter wr1, StreamWriter wr2, IRepository <DataAccess.DFOdata> dfoDataRepository)
        {
            var fixedCenterCell = new GridCell(0.0, 0.0);

            for (int nLayer = 1; nLayer <= 55; nLayer++)
            {
                var adjacentCells = GetNthSurroundingCellsFromCenterCell(fixedCenterCell, nLayer);
                foreach (var adjacentCell in adjacentCells)
                {
                    Console.WriteLine(string.Format("{0},{1}", adjacentCell.X, adjacentCell.Y));
                }
                Console.Write(string.Format("Toal adjacent: {0}\n", adjacentCells.Count));
                foreach (var adjacentCell in adjacentCells)
                {
                    var sqlQuery = string.Format("Select * from DFOdata where X >= {0} and X <= {1} and Y >= {2} and Y <= {3}",
                                                 adjacentCell.X - HalfOfEachCellArea,
                                                 adjacentCell.X + HalfOfEachCellArea,
                                                 adjacentCell.Y - HalfOfEachCellArea,
                                                 adjacentCell.Y + HalfOfEachCellArea);
                    var dfoDataPoints = dfoDataRepository.ExecuteCommand <DataAccess.DFOdata>(sqlQuery);
                    var uCompSum      = 0.0;
                    var vCompSum      = 0.0;
                    foreach (var dfoDataPoint in dfoDataPoints)
                    {
                        wr1.WriteLine("{0},{1},{2},{3}", dfoDataPoint.X, dfoDataPoint.Y, dfoDataPoint.U, dfoDataPoint.V);
                        uCompSum += dfoDataPoint.U;
                        vCompSum += dfoDataPoint.V;
                    }
                    var    totalDataPoint = dfoDataPoints.Count;
                    double uComp          = uCompSum / totalDataPoint;
                    double vComp          = vCompSum / totalDataPoint;
                    //if (!Double.IsNaN(uComp) && !Double.IsNaN(vComp))
                    //{
                    wr2.WriteLine("{0},{1},{2},{3}", adjacentCell.X, adjacentCell.Y, uComp, vComp);
                    //}
                    //Console.Write("Total {0} poins for cell {1},{2}.\n", totalDataPoint, adjacentCell.X, adjacentCell.Y);
                }
                Console.WriteLine("--------------------\n");
            }
        }
Esempio n. 7
0
        private void ByGridFasion(StreamWriter wr1, StreamWriter wr2, StreamWriter wr3, IRepository <DataAccess.DFOdata> dfoDataRepository)
        {
            Console.Write("Processing ..\n");
            var    rectArea          = GetRectArea(dfoDataRepository);
            var    selectedPointsStr = "";
            var    cellCenterStr     = "";
            var    nanCellStr        = "";
            var    insertStatement   = "Insert into dbo.Cells(X,Y,U,V) ";
            var    totalCell         = 0;
            var    startTime         = DateTime.Now;
            double distanceBetween2AdjacentCellCenterPoint = 2 * HalfOfEachCellArea;

            for (double y = rectArea.MaxY, i = 0.0; y >= rectArea.MinY; y = y - distanceBetween2AdjacentCellCenterPoint, i++)
            {
                for (double x = rectArea.MinX, j = 0.0; x <= rectArea.MaxX; x = x + distanceBetween2AdjacentCellCenterPoint, j++)
                {
                    var adjacentCell = new GridCell(x, y);
                    var sqlQuery     = string.Format("Select * from DFOdata where X >= {0} and X <= {1} and Y >= {2} and Y <= {3}",
                                                     adjacentCell.X - HalfOfEachCellArea,
                                                     adjacentCell.X + HalfOfEachCellArea,
                                                     adjacentCell.Y - HalfOfEachCellArea,
                                                     adjacentCell.Y + HalfOfEachCellArea);
                    var dfoDataPoints = dfoDataRepository.ExecuteCommand <DataAccess.DFOdata>(sqlQuery);
                    var uCompSum      = 0.0;
                    var vCompSum      = 0.0;

                    foreach (var dfoDataPoint in dfoDataPoints)
                    {
                        selectedPointsStr += string.Format("{0},{1},{2},{3}\n", dfoDataPoint.X, dfoDataPoint.Y, dfoDataPoint.U, dfoDataPoint.V);
                        wr1.WriteLine("{0},{1},{2},{3}", dfoDataPoint.X, dfoDataPoint.Y, dfoDataPoint.U, dfoDataPoint.V);
                        uCompSum += dfoDataPoint.U;
                        vCompSum += dfoDataPoint.V;
                    }
                    var    totalDataPoint = dfoDataPoints.Count;
                    double uComp          = uCompSum / totalDataPoint;
                    double vComp          = vCompSum / totalDataPoint;
                    if (!Double.IsNaN(uComp) && !Double.IsNaN(vComp))
                    {
                        cellCenterStr += string.Format("{0},{1},{2},{3}\n", adjacentCell.X, adjacentCell.Y, uComp, vComp);
                        var cellX = Convert.ToInt32(i);
                        var cellY = Convert.ToInt32(j);

                        if (totalCell == 0)
                        {
                            insertStatement += string.Format("SELECT {0}, {1}, {2}, {3}", cellY, cellX, uComp, vComp);
                        }
                        else
                        {
                            insertStatement += string.Format("UNION ALL SELECT {0}, {1}, {2}, {3}", cellY, cellX, uComp, vComp);
                        }
                        totalCell++;
                        Console.Write(string.Format("{0} {1}\n", i, j));
                    }
                    else
                    {
                        nanCellStr += string.Format("{0},{1},{2},{3}\n", adjacentCell.X, adjacentCell.Y, uComp, vComp);
                    }
                    //Console.Write("Total {0} poins for cell {1},{2}.\n", totalDataPoint, adjacentCell.X, adjacentCell.Y);
                }
                //if(Convert.ToInt32(i) == 1)
                //{
                //    break;
                //}
            }

            //dfoDataRepository.ExecuteCommandDirectly(insertStatement);

            wr1.Write(selectedPointsStr);
            wr2.Write(cellCenterStr);
            wr3.Write(nanCellStr);

            var currentTime = DateTime.Now;
            var diff        = currentTime.Subtract(startTime).TotalSeconds;

            Console.Write("Done..\n Timing: {0}", diff);
        }
Esempio n. 8
0
 private void BySpiralFasion(StreamWriter wr1, StreamWriter wr2, IRepository<DataAccess.DFOdata> dfoDataRepository)
 {
     var fixedCenterCell = new GridCell(0.0, 0.0);
     for (int nLayer = 1; nLayer <= 55; nLayer++)
     {
         var adjacentCells = GetNthSurroundingCellsFromCenterCell(fixedCenterCell, nLayer);
         foreach (var adjacentCell in adjacentCells)
         {
             Console.WriteLine(string.Format("{0},{1}", adjacentCell.X, adjacentCell.Y));
         }
         Console.Write(string.Format("Toal adjacent: {0}\n", adjacentCells.Count));
         foreach (var adjacentCell in adjacentCells)
         {
             var sqlQuery = string.Format("Select * from DFOdata where X >= {0} and X <= {1} and Y >= {2} and Y <= {3}",
                                          adjacentCell.X - HalfOfEachCellArea,
                                          adjacentCell.X + HalfOfEachCellArea,
                                          adjacentCell.Y - HalfOfEachCellArea,
                                          adjacentCell.Y + HalfOfEachCellArea);
             var dfoDataPoints = dfoDataRepository.ExecuteCommand<DataAccess.DFOdata>(sqlQuery);
             var uCompSum = 0.0;
             var vCompSum = 0.0;
             foreach (var dfoDataPoint in dfoDataPoints)
             {
                 wr1.WriteLine("{0},{1},{2},{3}", dfoDataPoint.X, dfoDataPoint.Y, dfoDataPoint.U, dfoDataPoint.V);
                 uCompSum += dfoDataPoint.U;
                 vCompSum += dfoDataPoint.V;
             }
             var totalDataPoint = dfoDataPoints.Count;
             double uComp = uCompSum / totalDataPoint;
             double vComp = vCompSum / totalDataPoint;
             //if (!Double.IsNaN(uComp) && !Double.IsNaN(vComp))
             //{
             wr2.WriteLine("{0},{1},{2},{3}", adjacentCell.X, adjacentCell.Y, uComp, vComp);
             //}
             //Console.Write("Total {0} poins for cell {1},{2}.\n", totalDataPoint, adjacentCell.X, adjacentCell.Y);
         }
         Console.WriteLine("--------------------\n");
     }
 }
Esempio n. 9
0
        private void ByGridFasion(StreamWriter wr1, StreamWriter wr2, StreamWriter wr3, IRepository<DataAccess.DFOdata> dfoDataRepository)
        {
            Console.Write("Processing ..\n");
            var rectArea = GetRectArea(dfoDataRepository);
            var selectedPointsStr = "";
            var cellCenterStr = "";
            var nanCellStr = "";
            var insertStatement = "Insert into dbo.Cells(X,Y,U,V) ";
            var totalCell = 0;
            var startTime = DateTime.Now;
            double distanceBetween2AdjacentCellCenterPoint = 2 * HalfOfEachCellArea;

            for (double y = rectArea.MaxY, i = 0.0; y >= rectArea.MinY; y = y - distanceBetween2AdjacentCellCenterPoint, i ++)
            {
                for (double x = rectArea.MinX, j = 0.0; x <= rectArea.MaxX; x = x + distanceBetween2AdjacentCellCenterPoint, j ++)
                {
                    var adjacentCell = new GridCell(x,y);
                    var sqlQuery = string.Format("Select * from DFOdata where X >= {0} and X <= {1} and Y >= {2} and Y <= {3}",
                                                 adjacentCell.X - HalfOfEachCellArea,
                                                 adjacentCell.X + HalfOfEachCellArea,
                                                 adjacentCell.Y - HalfOfEachCellArea,
                                                 adjacentCell.Y + HalfOfEachCellArea);
                    var dfoDataPoints = dfoDataRepository.ExecuteCommand<DataAccess.DFOdata>(sqlQuery);
                    var uCompSum = 0.0;
                    var vCompSum = 0.0;

                    foreach (var dfoDataPoint in dfoDataPoints)
                    {
                        selectedPointsStr += string.Format("{0},{1},{2},{3}\n", dfoDataPoint.X, dfoDataPoint.Y, dfoDataPoint.U, dfoDataPoint.V);
                        wr1.WriteLine("{0},{1},{2},{3}", dfoDataPoint.X, dfoDataPoint.Y, dfoDataPoint.U, dfoDataPoint.V);
                        uCompSum += dfoDataPoint.U;
                        vCompSum += dfoDataPoint.V;
                    }
                    var totalDataPoint = dfoDataPoints.Count;
                    double uComp = uCompSum / totalDataPoint;
                    double vComp = vCompSum / totalDataPoint;
                    if (!Double.IsNaN(uComp) && !Double.IsNaN(vComp))
                    {
                        cellCenterStr += string.Format("{0},{1},{2},{3}\n", adjacentCell.X, adjacentCell.Y, uComp, vComp);
                        var cellX = Convert.ToInt32(i);
                        var cellY = Convert.ToInt32(j);

                        if (totalCell == 0)
                            insertStatement += string.Format("SELECT {0}, {1}, {2}, {3}", cellY , cellX, uComp, vComp);
                        else
                            insertStatement += string.Format("UNION ALL SELECT {0}, {1}, {2}, {3}", cellY, cellX, uComp, vComp);
                        totalCell++;
                        Console.Write(string.Format("{0} {1}\n", i, j));
                    }
                    else
                    {
                        nanCellStr += string.Format("{0},{1},{2},{3}\n", adjacentCell.X, adjacentCell.Y, uComp, vComp);
                    }
                    //Console.Write("Total {0} poins for cell {1},{2}.\n", totalDataPoint, adjacentCell.X, adjacentCell.Y);

                }
                //if(Convert.ToInt32(i) == 1)
                //{
                //    break;
                //}

            }

            //dfoDataRepository.ExecuteCommandDirectly(insertStatement);

            wr1.Write(selectedPointsStr);
            wr2.Write(cellCenterStr);
            wr3.Write(nanCellStr);

            var currentTime = DateTime.Now;
            var diff = currentTime.Subtract(startTime).TotalSeconds;
            Console.Write("Done..\n Timing: {0}",diff);
        }
Esempio n. 10
0
 public RectArea GetRectArea(IRepository<DataAccess.DFOdata> dfoDataRepository)
 {
     const string sqlQuery = "select max(X) as MaxX, min(X) as MinX, max(Y) as MaxY, min(Y) as MinY from dbo.DFOdata";
     var rectArea = dfoDataRepository.ExecuteCommand<RectArea>(sqlQuery);
     if (rectArea == null)
         throw new Exception("Can't get the rect area !!");
     return rectArea.ElementAt(0);
 }
Esempio n. 11
0
        public async Task <Result> SaveRoleMenus([FromBody] JObject obj)
        {
            int        rId     = Convert.ToInt32(obj["rId"]);
            List <int> lstMIds = new List <int> {
            };

            if (obj["lstMIds"] != null)
            {
                lstMIds = ComHelper.JsonDeserialize <List <int> >(ComHelper.JsonSerialize(obj["lstMIds"]));
            }

            var dtNow   = DateTime.Now;
            var optUser = currentUser.UserName;
            var res     = await works.WorkTransactionAsync(async() =>
            {
                // 角色原有菜单
                var lstOld = await works.QueryAsync <PermRoleMenuDto>(x => x.RId == rId);

                // 禁用已有菜单
                if (!(lstMIds != null && lstMIds.Count > 0))
                {
                    var disRes = await works.ExecuteCommandAsync(" UPDATE PermRoleMenu SET IsDel = 1,UpdateTime = CURRENT_TIMESTAMP,Updater = @Updater WHERE IsDel = 0 AND RId = @RId ",
                                                                 new { RId = rId, Updater = optUser });
                    return(new Result {
                        IsSucc = true
                    });
                }

                // 需要删除的菜单Ids
                var lstDelIds = lstOld.Where(x => x.IsDel == 0).Select(x => x.MId).Except(lstMIds).Distinct().ToList();
                if (lstDelIds.Count > 0)
                {
                    var delRes = works.ExecuteCommand(@" UPDATE PermRoleMenu SET IsDel = 1,Updater = @Updater,UpdateTime = CURRENT_TIMESTAMP WHERE IsDel = 0 AND RId = @RId AND MId IN (@MIds) ",
                                                      new { RId = rId, Updater = optUser, MIds = lstDelIds });
                }

                // 需要更新的菜单Ids
                var lstUpdIds = lstOld.Where(x => x.IsDel == 1).Select(x => x.MId).Intersect(lstMIds).Distinct().ToList();
                if (lstUpdIds.Count > 0)
                {
                    var updRes = await works.ExecuteCommandAsync(
                        " UPDATE PermRoleMenu SET IsDel = 0,UpdateTime = CURRENT_TIMESTAMP,Updater = @Updater WHERE IsDel = 1 AND RId = @RId AND MId IN (@MIds) ",
                        new { RId = rId, Updater = optUser, MIds = lstUpdIds });
                }

                // 新增菜单Ids
                var lstNewIds = lstMIds.Except(lstOld.Select(x => x.MId)).Distinct().ToList();
                if (lstNewIds.Count > 0)
                {
                    var dtNow   = DateTime.Now;
                    var user    = optUser;
                    var lstSave = new List <PermRoleMenuDto> {
                    };
                    foreach (var mId in lstNewIds)
                    {
                        var temp = new PermRoleMenuDto
                        {
                            RId        = rId,
                            MId        = mId,
                            Creater    = user,
                            Updater    = user,
                            IsDel      = 0,
                            CreateTime = dtNow,
                            UpdateTime = dtNow
                        };

                        lstSave.Add(temp);
                    }

                    var addRes = await works.AddAsync(lstSave);
                }

                return(new Result {
                    IsSucc = true
                });
            });

            return(new Result {
                IsSucc = res.IsSucc, Message = $"保存角色-菜单{(res.IsSucc ? "成功!" : "失败!")}"
            });
        }