Пример #1
0
        public List <ModuleEntity> GetMenuList(string roleId)
        {
            var data = new List <ModuleEntity>();

            if (OperatorProvider.Provider.GetCurrent().IsSystem)
            {
                data = moduleApp.GetList();
            }
            else
            {
                var moduledata    = moduleApp.GetList();
                var authorizedata = service.GetList(t => t.F_ObjectId == roleId && t.F_ItemType == 1).ToList();
                foreach (var item in authorizedata)
                {
                    ModuleEntity moduleEntity = moduledata.Find(t => t.F_Id == item.F_ItemId);
                    if (moduleEntity != null)
                    {
                        data.Add(moduleEntity);
                    }
                }
            }
            return(data.OrderBy(t => t.F_SortCode).ToList());
        }
Пример #2
0
 /// <summary>
 /// 删除模块信息
 /// </summary>
 /// <param name="nodeIds">模块ID</param>
 /// <returns></returns>
 public bool Delete(string nodeIds)
 {
     try
     {
         ModuleEntity  root = GetModuleByPKID(Convert.ToInt32(nodeIds.Split(',')[0].Replace("'", "")));
         List <string> list = new List <string>();
         list.Add($@"Delete from Module where PKID in({nodeIds})");
         int result = SqlHelper.ExecuteNonQuery(SqlHelper.connStr, list);
         if (result > 0)
         {
             DecOrder(root.ParentID, root.Sort);
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #3
0
 /// <summary>
 /// 批量删除
 /// </summary>
 /// <param name="keyValues">菜单主键</param>
 /// <returns></returns>
 public bool DeleteBatch(List <string> keyValues, string UserId, string UserName)
 {
     if (keyValues.Count() > 0)
     {
         using (var db = _dbContext.GetIntance())
         {
             var moduleEntity = new ModuleEntity();
             moduleEntity.DeleteMark     = 0;
             moduleEntity.ModifyDate     = System.DateTime.Now;
             moduleEntity.ModifyUserId   = UserId;
             moduleEntity.ModifyUserName = UserName;
             //逻辑删除
             var counts = db.Updateable(moduleEntity).UpdateColumns(it => new { it.DeleteMark, it.ModifyUserName, it.ModifyUserId, it.ModifyDate })
                          .Where(it => keyValues.Contains(it.ModuleId)).ExecuteCommand();
             result = counts > 0 ? true : false;
         }
     }
     else
     {
         result = false;
     }
     return(result);
 }
Пример #4
0
        public bool ActionValidate(string roleId, string moduleId, string action)
        {
            var authorizeurldata = new List <AuthorizeActionModel>();
            var cachedata        = CacheFactory.Cache().GetCache <List <AuthorizeActionModel> >("authorizeurldata_" + roleId);

            if (cachedata == null)
            {
                var moduledata    = _moduleApp.GetList();
                var buttondata    = _moduleButtonApp.GetList();
                var authorizedata = _service.IQueryable(t => t.F_ObjectId == roleId).ToList();
                foreach (var item in authorizedata)
                {
                    if (item.F_ItemType == 1)
                    {
                        ModuleEntity moduleEntity = moduledata.Find(t => t.F_Id == item.F_ItemId);
                        authorizeurldata.Add(new AuthorizeActionModel {
                            F_Id = moduleEntity.F_Id, F_UrlAddress = moduleEntity.F_UrlAddress
                        });
                    }
                    else if (item.F_ItemType == 2)
                    {
                        ModuleButtonEntity moduleButtonEntity = buttondata.Find(t => t.F_Id == item.F_ItemId);
                        authorizeurldata.Add(new AuthorizeActionModel {
                            F_Id = moduleButtonEntity.F_ModuleId, F_UrlAddress = moduleButtonEntity.F_UrlAddress
                        });
                    }
                }
                CacheFactory.Cache().WriteCache(authorizeurldata, "authorizeurldata_" + roleId, DateTime.Now.AddMinutes(5));
            }
            else
            {
                authorizeurldata = cachedata;
            }
            authorizeurldata = authorizeurldata.FindAll(t => t.F_Id.Equals(moduleId));
            return((from item in authorizeurldata where !string.IsNullOrEmpty(item.F_UrlAddress) let url = item.F_UrlAddress.Split('?') where item.F_Id == moduleId && url[0] == action select item).Any());
        }
Пример #5
0
        public ActionResult GetAuthorizeButtonColumnList(string url)
        {
            Dictionary <string, string> dicButton = new Dictionary <string, string>();
            Dictionary <string, string> dicColumn = new Dictionary <string, string>();

            ModuleEntity moduleEntity = moduleIBLL.GetModuleByUrl(url);

            if (moduleEntity != null)
            {
                List <ModuleButtonEntity> buttonList = moduleIBLL.GetButtonList(moduleEntity.F_ModuleId);
                foreach (var item in buttonList)
                {
                    if (!dicButton.ContainsKey(item.F_EnCode))
                    {
                        dicButton.Add(item.F_EnCode, item.F_FullName);
                    }
                }
                List <ModuleColumnEntity> columnList = moduleIBLL.GetColumnList(moduleEntity.F_ModuleId);
                foreach (var item in columnList)
                {
                    if (!dicColumn.ContainsKey(item.F_EnCode))
                    {
                        dicColumn.Add(item.F_EnCode.ToLower(), item.F_FullName);
                    }
                }
            }

            var jsonData = new
            {
                module = moduleEntity,
                btns   = dicButton,
                cols   = dicColumn
            };

            return(this.Success(jsonData));
        }
Пример #6
0
        public Task <int> SubmitForm <TDto>(ModuleEntity moduleEntity, TDto dto) where TDto : class
        {
            var claimsIdentity = _httpContext.HttpContext.User.Identity as ClaimsIdentity;
            var claim          = claimsIdentity?.FindFirst(t => t.Type.Equals(ClaimTypes.NameIdentifier));

            if (!string.IsNullOrEmpty(moduleEntity.F_Id))
            {
                moduleEntity.Modify(moduleEntity.F_Id);
                if (claim != null)
                {
                    moduleEntity.F_LastModifyUserId = claim.Value;
                }
                return(_service.UpdateAsync(moduleEntity, dto));
            }
            else
            {
                moduleEntity.Create();
                if (claim != null)
                {
                    moduleEntity.F_CreatorUserId = claim.Value;
                }
                return(_service.InsertAsync(moduleEntity));
            }
        }
        public async Task <ActionResult> SubmitForm(ModuleEntity entity, string keyValue)
        {
            try
            {
                await moduleApp.SubmitFormAsync(entity, keyValue);

                if (string.IsNullOrEmpty(keyValue))
                {
                    WirteOperationRecord("Module", "INSERT", "增加", "Info:" + entity.ToJson());
                }
                else
                {
                    WirteOperationRecord("Module", "UPDATE", "修改", "Info:" + entity.ToJson());
                }
            }
            catch (Exception ex)
            {
                log.logType  = "ERROR";
                log.logLevel = "ERROR";
                WirteOperationRecord("Module", "", "", "Info:" + ex.Message.ToString());
                return(Error(ex.Message.ToString()));
            }
            return(Success("操作成功."));
        }
        /// <summary>
        /// 获取当前用户的菜单权限
        /// </summary>
        /// <param name="roleId"></param>
        /// <returns></returns>
        public List <ModuleEntity> GetMenuList(string roleGuid)
        {
            var data = new List <ModuleEntity>();
            var role = roleRepository.FindEntity(roleGuid);

            if (OperatorProvider.Provider.GetCurrent().IsSystem)
            {
                data = moduleApp.FindList(m => m.isEnabled == true).ToList();
            }
            else
            {
                var moduleData = moduleApp.FindList(m => m.isEnabled == true).ToList();
                var authData   = this.FindList(r => r.authRoleGuid == role.roleGuid && r.authModuleType == 1).ToList();
                foreach (var item in authData)
                {
                    ModuleEntity moduleEntity = moduleData.Find(m => m.moduleGuid == item.authModuleGuid);
                    if (moduleEntity != null)
                    {
                        data.Add(moduleEntity);
                    }
                }
            }
            return(data.OrderBy(m => m.sortCode).ToList());;
        }
Пример #9
0
 public ActionResult SubmitForm(ModuleEntity moduleEntity, string keyValue)
 {
     moduleApp.SubmitForm(moduleEntity, keyValue);
     return(Success("操作成功。"));
 }
Пример #10
0
        /// <summary>
        /// 保存表单与模块关联的实体数据
        /// </summary>
        /// <param name="keyValue"></param>
        /// <param name="entity"></param>
        /// <param name="moduleEntity"></param>
        public void SaveRelationEntity(string keyValue, FormModuleRelationEntity entity, ModuleEntity moduleEntity = null)
        {
            try
            {
                FormModuleEntity         formModuleEntity        = server.GetEntity(entity.F_FrmId);
                Form_ModuleContentEntity formModuleContentEntity = new Form_ModuleContentEntity()
                {
                    F_FrmContent = formModuleEntity.F_FrmContent,
                    F_FrmId      = formModuleEntity.F_FrmId,
                    F_FrmVersion = formModuleEntity.F_Version
                };

                if (entity.F_FrmKind == 0)//自定义表单
                {
                    serverRelation.SaveEntity(keyValue, entity, moduleEntity, formModuleContentEntity);
                }
                else
                {
                    serverRelation.SaveEntity(keyValue, entity, formModuleContentEntity);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #11
0
 /// <summary>
 /// 修改一条记录
 /// </summary>
 /// <param name="model">实体对象</param>
 /// <returns></returns>
 public bool Update(ModuleEntity model)
 {
     //获取排序,前台不保留排序
     model.Sort = GetModuleOrder(model.PKID);
     return(new DAL.Module().Update(model));
 }
Пример #12
0
        public async Task <bool> InitData()
        {
            var db = this._dbContextProvider.GetDbContext();
            //用户
            UserEntity userEntity = new UserEntity
            {
                Id        = Guid.NewGuid().ToString(),
                LoginName = "superAdmin",
                LoginPwd  = MD5Helper.MD5Encrypt32("123qwe"),
                RealName  = "超级管理员",
                Status    = 0
            };
            await db.UserEntitys.AddAsync(userEntity);

            //角色
            RoleEntity roleEntity = new RoleEntity
            {
                Id          = Guid.NewGuid().ToString(),
                Name        = "SuperAdmin",
                Description = "超级管理员",
                IsEnabled   = true
            };
            await db.RoleEntitys.AddAsync(roleEntity);

            //用户角色关系
            User2RoleEntity user2RoleEntity = new User2RoleEntity
            {
                Id     = Guid.NewGuid().ToString(),
                UserId = userEntity.Id,
                RoleId = roleEntity.Id
            };
            await db.User2RoleEntitys.AddAsync(user2RoleEntity);

            //接口----API的地址接口
            ModuleEntity moduleEntity = new ModuleEntity
            {
                Id        = Guid.NewGuid().ToString(),
                Name      = "测试授权接口",
                LinkUrl   = "api/sys/user/GetAuthorize",
                IsEnabled = true,
                IsMenu    = false,
                OrderSort = 0
            };
            await db.ModuleEntitys.AddAsync(moduleEntity);

            //模块---菜单,按钮



            //角色--接口--模块
            Role2Module2PermissionEntity role2Module2PermissionEntity = new Role2Module2PermissionEntity
            {
                Id       = Guid.NewGuid().ToString(),
                RoleId   = roleEntity.Id,
                ModuleId = moduleEntity.Id
            };
            await db.Role2Module2PermissionEntitys.AddAsync(role2Module2PermissionEntity);

            await db.SaveChangesAsync();

            return(await Task.FromResult(true));
        }
Пример #13
0
 /// <summary>
 /// Abstract method to add Module
 ///  /summary>
 /// <param name="Module"></param>
 /// <returns></returns>
 public abstract int AddModule(ModuleEntity entity_Module);
Пример #14
0
 /// <summary>
 /// Default ctor
 /// </summary>
 internal JunctionRefSet(ModuleEntity owner)
     : base(owner)
 {
 }
Пример #15
0
        public ActionResult GZTZ()
        {
            var module = new ModuleEntity();
            //int month = 1;
            //if (DateTime.Now.Month < 4) month = 1;
            //else if (DateTime.Now.Month < 7) month = 4;
            //else if (DateTime.Now.Month < 10) month = 7;
            //else if (DateTime.Now.Month <= 12) month = 10;
            //DateTime sdt = new DateTime(DateTime.Now.Year, month, 1);
            //var user = OperatorProvider.Provider.Current();

            //if (user.DeptId == "0") user.DeptCode = "0";

            //var total = 0;

            //var list = workmeetingbll.GetData(10000, 1, out total, new Dictionary<string, string>() { { "departmentid", user.DeptId }, { "meetingstarttime", sdt.ToString("yyyy-MM-dd") } });
            //ViewData["Count1"] = total;

            ////var list1 = workmeetingbll.GetBaseDataNew("", 10000, 1, out total).Where(x => x.CreateDate > sdt);
            //ViewData["Count2"] = service.GetAllDanger(user.DeptCode, sdt.ToString("yyyy-MM-dd"));

            //ViewData["Count3"] = service.GetAllActivity(user.DeptCode, sdt.ToString("yyyy-MM-dd"));
            //ViewData["Count4"] = service.GetAllEducation(user.DeptCode, sdt.ToString("yyyy-MM-dd"));
            //ViewData["Count5"] = service.GetAllLllegal(user.DeptId, sdt.ToString("yyyy-MM-dd"));
            //ViewData["Count6"] = service.GetAllEmergencyWork(user.DeptName, sdt.ToString("yyyy-MM-dd"));
            //ViewData["Count7"] = service.GetAllToolborrow(user.DeptCode, sdt.ToString("yyyy-MM-dd"));
            //ViewData["Count8"] = service.GetAllGlassStock(user.DeptCode, sdt.ToString("yyyy-MM-dd"));
            var user = OperatorProvider.Provider.Current();

            ViewBag.deptId   = user.DeptId;
            ViewBag.deptName = user.DeptName;
            ModuleBLL moduleBLL = new ModuleBLL();
            var       list      = moduleBLL.GetList().Where(x => x.UrlAddress != "" && x.UrlAddress != null);

            module            = list.Where(x => x.UrlAddress.Contains("/Works/WorkMeeting/Index2")).FirstOrDefault();//班会
            ViewBag.meetid    = module.ModuleId;
            ViewBag.meeturl   = module.UrlAddress;
            ViewBag.meettext  = module.FullName;
            module            = list.Where(x => x.UrlAddress.Contains("/Works/Danger/Index2")).FirstOrDefault();//KYT
            ViewBag.kytid     = module.ModuleId;
            ViewBag.kyturl    = module.UrlAddress;
            ViewBag.kyttext   = module.FullName;
            module            = list.Where(x => x.UrlAddress.Contains("/Works/Activity/Index3")).FirstOrDefault();//KYT
            ViewBag.actid     = module.ModuleId;
            ViewBag.acturl    = module.UrlAddress;
            ViewBag.acttext   = module.FullName;
            module            = list.Where(x => x.UrlAddress.Contains("/Works/Education/Index2")).FirstOrDefault();//教育培训
            ViewBag.eduid     = module.ModuleId;
            ViewBag.eduurl    = module.UrlAddress;
            ViewBag.edutext   = module.FullName;
            module            = list.Where(x => x.UrlAddress.Contains("/Works/Lllegal/Index2")).FirstOrDefault();//教育培训
            ViewBag.legalid   = module.ModuleId;
            ViewBag.legalurl  = module.UrlAddress;
            ViewBag.legaltext = module.FullName;
            module            = list.Where(x => x.UrlAddress.Contains("/Works/emergency/Index1")).FirstOrDefault();//教育培训
            ViewBag.emid      = module.ModuleId;
            ViewBag.emurl     = module.UrlAddress;
            ViewBag.emtext    = module.FullName;
            module            = list.Where(x => x.UrlAddress.Contains("/Works/Drug/Index")).FirstOrDefault();//教育培训
            ViewBag.glassid   = module.ModuleId;
            ViewBag.glassurl  = module.UrlAddress;
            ViewBag.glasstext = module.FullName;

            ViewBag.cpname = Config.GetValue("CustomerModel");
            return(View());
        }
Пример #16
0
        public async Task LoadForm()
        {
            //initialize client drop down
            try
            {
                using (var uow = UnitOfWorkFactory.CreateUnitOfWork())
                {
                    ModuleStatus?status = null;
                    if (dataObj != null)
                    {
                        dataObj = uow.ModuleRepository.GetById(dataObj.Id, "Field.Farm.Client");
                        status  = dataObj.ModuleStatus;
                    }

                    clientSelector1.Initialize(errorProvider, true, false, (dataObj != null) ? dataObj.Field.Farm.ClientId : "");

                    farmSelector1.FormErrorProvider  = errorProvider;
                    fieldSelector1.FormErrorProvider = errorProvider;


                    BindingHelper.BindModuleStatusCombo(tbStatus, "-- Select One --", status);
                    BindingHelper.BindDriverComboByName(cboDriver, "-- Select One --", (dataObj != null) ? dataObj.Driver : string.Empty);
                    BindingHelper.BindTruckComboByName(cboTruck, "-- Select One --", (dataObj != null) ? dataObj.TruckID : string.Empty);

                    if (dataObj != null)
                    {
                        tbSerialNumber.Text = dataObj.Name;
                        if (!string.IsNullOrEmpty(dataObj.LoadNumber))
                        {
                            lblLoad.Text = dataObj.LoadNumber;
                        }
                        else
                        {
                            lblLoad.Text = "Not assigned";
                        }

                        tbGinTicketLoadNumber.Text = dataObj.GinTagLoadNumber;
                        tbLatitude.Text            = dataObj.Latitude.ToString();
                        tbLongitude.Text           = dataObj.Longitude.ToString();
                        lblImportedLoad.Text       = dataObj.ImportedLoadNumber;

                        lblDiameter.Text        = dataObj.HIDDiameterInches.NullableToStringHighPrecision();
                        lblFieldArea.Text       = dataObj.HIDFieldAreaAcres.NullableToStringHighPrecision();
                        lblIncrementalArea.Text = dataObj.HIDIncrementalAreaAcres.NullableToStringHighPrecision();
                        lblModuleWeight.Text    = dataObj.HIDModuleWeightLBS.NullableToStringHighPrecision();
                        lblMoisturePercent.Text = dataObj.HIDMoisture.NullableToString();
                        lblOperator.Text        = dataObj.HIDOperator;
                        lblProducerID.Text      = dataObj.HIDProducerID;
                        lblSeasonTotal.Text     = dataObj.HIDSeasonTotal.NullableToString();
                        lblVariety.Text         = dataObj.HIDVariety;

                        lblHIDFieldTotal.Text = dataObj.HIDFieldTotal.NullableToString();
                        lblGinID.Text         = dataObj.HIDGinID;
                        lblMachinePIN.Text    = dataObj.HIDMachinePIN;
                        lblHIDDropLat.Text    = dataObj.HIDDropLat.ToString();
                        lblHIDDropLong.Text   = dataObj.HIDDropLong.ToString();
                        lblHIDLat.Text        = dataObj.HIDLat.ToString();
                        lblHIDLong.Text       = dataObj.HIDLong.ToString();
                        //lblHIDWrapLat.Text = dataObj.HIDWrapLat.ToString();
                        //lblHIDWrapLong.Text = dataObj.HIDWrapLong.ToString();
                        lblHIDTimestamp.Text = dataObj.HIDTimestamp.HasValue ? dataObj.HIDTimestamp.Value.ToLocalTime().ToString("MM/dd/yyyy hh:mm:ss tt") : "";


                        tbNotes.Text    = (dataObj.Notes ?? "");
                        tbModuleID.Text = (dataObj.ModuleId ?? "");
                        //tbStatus
                    }
                    else
                    {
                        tbSerialNumber.Text  = string.Empty;
                        lblLoad.Text         = "Not assigned";
                        tbLatitude.Text      = string.Empty;
                        tbLongitude.Text     = string.Empty;
                        lblImportedLoad.Text = string.Empty;

                        lblDiameter.Text        = string.Empty;
                        lblFieldArea.Text       = string.Empty;
                        lblIncrementalArea.Text = string.Empty;
                        lblModuleWeight.Text    = string.Empty;
                        lblMoisturePercent.Text = string.Empty;
                        lblOperator.Text        = string.Empty;
                        lblProducerID.Text      = string.Empty;
                        lblSeasonTotal.Text     = string.Empty;
                        lblVariety.Text         = string.Empty;


                        tbModuleID.Text = "--";
                        tbNotes.Text    = "";
                    }
                    clearErrors();
                }
            }
            catch (Exception exc)
            {
                Logging.Logger.Log(exc);
                throw new Exception("Error occurred loading module form.", exc);
            }
        }
Пример #17
0
 public void Delete(ModuleEntity entity)
 {
     service.Delete(entity);
 }
Пример #18
0
 /// <summary>
 /// Abstract method to update Module
 /// </summary>
 public abstract int EditModule(ModuleEntity entity_Module);
Пример #19
0
        public bool ActionValidate(string roleId, string moduleId, string action)
        {
            var authorizeurldata = new List <AuthorizeActionModel>();
            //var cachedata = CacheFactory.cacheFactory.Cache().GetCache<List<AuthorizeActionModel>>("authorizeurldata_" + roleId);
            var cachedata = new CacheHelp().GetAuthorizeurlDatas(roleId);

            if (cachedata == null || cachedata.Count <= 0)
            {
                var moduledata    = moduleApp.GetList();
                var buttondata    = moduleButtonApp.GetList();
                var authorizedata = service.IQueryable(t => t.ObjectId == roleId).ToList();
                foreach (var item in authorizedata)
                {
                    if (item.ItemType == 1)
                    {
                        ModuleEntity moduleEntity = moduledata.Find(t => t.Id == item.ItemId);
                        if (moduleEntity != null)
                        {
                            authorizeurldata.Add(new AuthorizeActionModel {
                                Id = moduleEntity.Id, UrlAddress = moduleEntity.UrlAddress
                            });
                        }
                    }
                    else if (item.ItemType == 2)
                    {
                        ModuleButtonEntity moduleButtonEntity = buttondata.Find(t => t.Id == item.ItemId);
                        if (moduleButtonEntity != null)
                        {
                            authorizeurldata.Add(new AuthorizeActionModel {
                                Id = moduleButtonEntity.ModuleId, UrlAddress = moduleButtonEntity.UrlAddress
                            });
                        }
                    }
                }
                //CacheFactory.cacheFactory.Cache().WriteCache(authorizeurldata, "authorizeurldata_" + roleId, DateTime.Now.AddMinutes(5));
                new CacheHelp().WriteAuthorizeurlDatas(authorizeurldata, roleId);
            }
            else
            {
                authorizeurldata = cachedata;
            }
            authorizeurldata = authorizeurldata.FindAll(t => t.Id.Equals(moduleId));
            foreach (var item in authorizeurldata)
            {
                if (!string.IsNullOrEmpty(item.UrlAddress))
                {
                    string[] url = item.UrlAddress.Split('?');
                    if (item.Id == moduleId && url[0] == action)
                    {
                        return(true);
                    }
                    else
                    {
                        string[] urls = item.UrlAddress.Split('|');
                        if (item.Id == moduleId && urls.Contains(action))
                        {
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
Пример #20
0
 public void SubmitForm(ModuleEntity entity, string keyValue)
 {
     throw new NotImplementedException();
 }
Пример #21
0
        public ActionResult getOneModule(int IdModule)
        {
            ModuleEntity modulo = proxyModule.GetModule(IdModule);

            return(Json(modulo, JsonRequestBehavior.AllowGet));
        }
Пример #22
0
        /// <summary>
        /// 保存实体数据(关联功能模块菜单)
        /// </summary>
        /// <param name="keyValue">主键Id</param>
        /// <param name="entity">表单关联实体</param>
        /// <param name="moduleEntity">系统功能模板实体</param>
        /// <param name="formModuleContentEntity">表单内容数据</param>
        /// <returns></returns>
        public void SaveEntity(string keyValue, FormModuleRelationEntity entity, ModuleEntity moduleEntity, Form_ModuleContentEntity formModuleContentEntity)
        {
            IRepository db = this.BaseRepository().BeginTrans();

            try
            {
                var expression = LinqExtensions.True <Form_ModuleContentEntity>();
                expression = expression.And(t => t.F_FrmId == entity.F_FrmId && t.F_FrmVersion == entity.F_FrmVersion);
                Form_ModuleContentEntity form_ModuleContentEntity = db.FindEntity <Form_ModuleContentEntity>(expression);
                if (form_ModuleContentEntity == null)
                {
                    formModuleContentEntity.Create();
                    db.Insert(formModuleContentEntity);
                    entity.F_ModuleContentId = formModuleContentEntity.F_Id;
                }
                else
                {
                    entity.F_ModuleContentId = form_ModuleContentEntity.F_Id;
                }

                if (string.IsNullOrEmpty(keyValue))
                {
                    entity.Create();
                    moduleEntity.Create();
                    db.Insert(moduleEntity);
                    entity.F_ObjectId         = moduleEntity.F_ModuleId;
                    entity.F_ObjectName       = moduleEntity.F_FullName;
                    moduleEntity.F_UrlAddress = moduleEntity.F_UrlAddress + "?Id=" + entity.F_Id;
                    db.Insert(entity);
                }
                else
                {
                    entity.Modify(keyValue);
                    moduleEntity.Modify(entity.F_ObjectId);
                    db.Update(moduleEntity);
                    entity.F_ObjectName       = moduleEntity.F_FullName;
                    moduleEntity.F_UrlAddress = moduleEntity.F_UrlAddress + "?Id=" + entity.F_Id;
                    db.Update(entity);
                }

                db.Delete <ModuleButtonEntity>(t => t.F_ModuleId.Equals(moduleEntity.F_ModuleId));
                ModuleButtonEntity moduleButtonrReplace = new ModuleButtonEntity();
                moduleButtonrReplace.F_ModuleId = moduleEntity.F_ModuleId;
                moduleButtonrReplace.F_EnCode   = "lr-replace";
                moduleButtonrReplace.F_FullName = "刷新";
                moduleButtonrReplace.F_SortCode = 0;
                moduleButtonrReplace.F_ParentId = "0";
                moduleButtonrReplace.Create();
                db.Insert(moduleButtonrReplace);

                ModuleButtonEntity moduleButtonrAdd = new ModuleButtonEntity();
                moduleButtonrAdd.F_ModuleId      = moduleEntity.F_ModuleId;
                moduleButtonrAdd.F_EnCode        = "lr-add";
                moduleButtonrAdd.F_FullName      = "新增";
                moduleButtonrAdd.F_SortCode      = 1;
                moduleButtonrAdd.F_ActionAddress = "/FormManage/FormModule/CustmerFormForm";
                moduleButtonrAdd.F_ParentId      = "0";
                moduleButtonrAdd.Create();
                db.Insert(moduleButtonrAdd);

                ModuleButtonEntity moduleButtonrEdit = new ModuleButtonEntity();
                moduleButtonrEdit.F_ModuleId      = moduleEntity.F_ModuleId;
                moduleButtonrEdit.F_EnCode        = "lr-edit";
                moduleButtonrEdit.F_FullName      = "编辑";
                moduleButtonrEdit.F_SortCode      = 2;
                moduleButtonrEdit.F_ActionAddress = "/FormManage/FormModule/CustmerFormForm";
                moduleButtonrEdit.F_ParentId      = "0";
                moduleButtonrEdit.Create();
                db.Insert(moduleButtonrEdit);

                ModuleButtonEntity moduleButtonrDelete = new ModuleButtonEntity();
                moduleButtonrDelete.F_ModuleId      = moduleEntity.F_ModuleId;
                moduleButtonrDelete.F_EnCode        = "lr-delete";
                moduleButtonrDelete.F_FullName      = "删除";
                moduleButtonrDelete.F_SortCode      = 3;
                moduleButtonrDelete.F_ActionAddress = "/FormManage/FormModule/CustmerFormRemove";
                moduleButtonrDelete.F_ParentId      = "0";
                moduleButtonrDelete.Create();
                db.Insert(moduleButtonrDelete);

                db.Commit();
            }
            catch
            {
                db.Rollback();
                throw;
            }
        }
Пример #23
0
 public ActionResult SaveForm(string keyValue, ModuleEntity moduleEntity, string moduleButtonListJson, string moduleColumnListJson)
 {
     moduleBLL.SaveForm(keyValue, moduleEntity, moduleButtonListJson, moduleColumnListJson);
     return(Success("保存成功。"));
 }
Пример #24
0
        private static void createPBIData()
        {
            FieldEntity  field  = null;
            ModuleEntity module = null;

            using (var uow = UnitOfWorkFactory.CreateUnitOfWork())
            {
                #region Create Modules and Gin Loads
                var client = new ClientEntity();
                client.Name  = "PBI TEST CLIENT";
                client.Farms = new List <FarmEntity>();

                var farm = new FarmEntity();
                farm.Id     = Guid.NewGuid().ToString();
                farm.Name   = "PBI TEST FARM";
                farm.Fields = new List <FieldEntity>();

                field           = new FieldEntity();
                field.Id        = Guid.NewGuid().ToString();
                field.Name      = "PBI TEST FIELD";
                field.Modules   = new List <ModuleEntity>();
                field.Latitude  = 0.00;
                field.Longitude = 0.00;
                field.Created   = DateTime.UtcNow;
                farm.Fields.Add(field);

                client.Farms.Add(farm);
                uow.ClientRepository.Save(client);
                uow.SaveChanges();
            }

            //add modules from CSV file
            string   fileName       = "C:\\Users\\mbohn\\Documents\\PBI_TestData.csv";
            string[] moduleContents = System.IO.File.ReadAllLines(fileName);

            List <GinLoadEntity> ginLoadEntities = new List <GinLoadEntity>();
            int bridgeLoadNumber = 0;
            for (int moduleCount = 1; moduleCount < moduleContents.Length; moduleCount++)
            {
                var fields = moduleContents[moduleCount].Split(',');
                using (var uow = UnitOfWorkFactory.CreateUnitOfWork())
                {
                    module                 = new ModuleEntity();
                    module.Id              = Guid.NewGuid().ToString();
                    module.Name            = fields[0];
                    module.FieldId         = field.Id;
                    module.TruckID         = "";
                    module.Driver          = "";
                    module.LoadNumber      = fields[3];
                    module.HIDDiameter     = Decimal.Parse(fields[1]) * 2.54M;
                    module.HIDModuleWeight = Decimal.Parse(fields[2]) * 0.453592M;

                    module.Latitude      = 0.00;
                    module.Longitude     = 0.00;
                    module.ModuleStatus  = ModuleStatus.IN_FIELD;
                    module.Created       = DateTime.UtcNow;
                    module.ModuleHistory = new List <ModuleHistoryEntity>();
                    var historyItem = new ModuleHistoryEntity
                    {
                        Id              = Guid.NewGuid().ToString(),
                        Created         = DateTime.UtcNow,
                        Driver          = module.Driver,
                        TruckID         = module.TruckID,
                        Latitude        = module.Latitude,
                        Longitude       = module.Longitude,
                        ModuleEventType = ModuleEventType.IMPORTED_FROM_FILE
                    };
                    module.FieldId = field.Id;
                    module.ModuleHistory.Add(historyItem);
                    uow.ModuleRepository.Add(module);
                    uow.SaveChanges();

                    if (!ginLoadEntities.Any(g => g.GinTagLoadNumber == module.LoadNumber))
                    {
                        //create gin load
                        var affectedGinLoad = new GinLoadEntity();
                        ginLoadEntities.Add(affectedGinLoad);
                        affectedGinLoad.Created       = DateTime.UtcNow;
                        affectedGinLoad.SyncedToCloud = false;

                        affectedGinLoad.Name                  = module.LoadNumber;
                        affectedGinLoad.GinTagLoadNumber      = module.LoadNumber;
                        affectedGinLoad.ScaleBridgeLoadNumber = bridgeLoadNumber++;
                        affectedGinLoad.NetWeight             = Convert.ToDecimal(fields[4]);
                        affectedGinLoad.GrossWeight           = affectedGinLoad.NetWeight + 8200;
                        affectedGinLoad.SplitWeight1          = affectedGinLoad.NetWeight;
                        affectedGinLoad.SplitWeight2          = 0.00M;

                        affectedGinLoad.ScaleBridgeId         = "BRIDGE1";
                        affectedGinLoad.ScaleBridgeLoadNumber = ginLoadEntities.Count();
                        affectedGinLoad.Source        = InputSource.GIN;
                        affectedGinLoad.SyncedToCloud = false;
                        affectedGinLoad.TruckID       = "TRUCK1";
                        affectedGinLoad.YardLocation  = "SOMEWHERE";
                        affectedGinLoad.SubmittedBy   = "TEST HARNESS";

                        //add client/farm/field information
                        affectedGinLoad.FieldId = field.Id;
                        uow.GinLoadRepository.Save(affectedGinLoad);
                        uow.SaveChanges();

                        module.GinTagLoadNumber = affectedGinLoad.GinTagLoadNumber;
                        module.GinLoadId        = affectedGinLoad.Id;
                    }
                    else
                    {
                        var load = ginLoadEntities.Single(g => g.GinTagLoadNumber == module.LoadNumber);
                        module.GinTagLoadNumber = load.GinTagLoadNumber;
                        module.GinLoadId        = load.Id;
                    }

                    //create feeder scan of module
                    module.ModuleStatus = ModuleStatus.ON_FEEDER;
                    module.LastBridgeId = "BRIDGE2";
                    // uow.ModuleRepository.Save(module);
                    //uow.SaveChanges();
                    Console.WriteLine("CREATING FEEDER SCAN FOR MODULE : " + module.Name);
                    ModuleHistoryEntity feederHistoryItem = new ModuleHistoryEntity();
                    feederHistoryItem.Id               = Guid.NewGuid().ToString();
                    feederHistoryItem.Created          = DateTime.Parse(fields[5] + " " + fields[6]).ToUniversalTime();
                    feederHistoryItem.Created          = feederHistoryItem.Created.AddSeconds(int.Parse(fields[7]));
                    feederHistoryItem.Driver           = "";
                    feederHistoryItem.TruckID          = "";
                    feederHistoryItem.BridgeId         = "BRIDGE2";
                    feederHistoryItem.ModuleId         = module.Id;
                    feederHistoryItem.Latitude         = module.Latitude;
                    feederHistoryItem.Longitude        = module.Longitude;
                    feederHistoryItem.GinTagLoadNumber = module.GinTagLoadNumber;

                    if (!string.IsNullOrEmpty(module.BridgeLoadNumber))
                    {
                        feederHistoryItem.BridgeLoadNumber = bridgeLoadNumber;
                    }
                    else
                    {
                        feederHistoryItem.BridgeLoadNumber = null;
                    }

                    module.ModuleHistory.Add(feederHistoryItem);
                    feederHistoryItem.ModuleStatus    = ModuleStatus.ON_FEEDER;
                    feederHistoryItem.ModuleStatus    = module.ModuleStatus;
                    feederHistoryItem.ModuleEventType = ModuleEventType.BRIDGE_SCAN;
                    module.SyncedToCloud = false;
                    uow.ModuleRepository.Save(module);
                    uow.SaveChanges();
                }
            }

            #endregion

            #region Create PBIs
            using (var uow = UnitOfWorkFactory.CreateUnitOfWork())
            {
                string   pbiFileName = "C:\\Users\\mbohn\\Documents\\PBI_Test_Bales.csv";
                string[] pbiLines    = System.IO.File.ReadAllLines(pbiFileName);
                for (int lineCount = 1; lineCount < pbiLines.Length; lineCount++)
                {
                    string line         = pbiLines[lineCount];
                    var    pbiFields    = line.Split(',');
                    var    affectedBale = new BaleEntity();
                    affectedBale.Id              = Guid.NewGuid().ToString();
                    affectedBale.Name            = pbiFields[0];
                    affectedBale.PbiNumber       = pbiFields[0];
                    affectedBale.Created         = DateTime.Parse(pbiFields[1] + " " + pbiFields[2]).ToUniversalTime();
                    affectedBale.Created         = affectedBale.Created.AddMilliseconds(lineCount);
                    affectedBale.SyncedToCloud   = false;
                    affectedBale.NetWeight       = decimal.Parse(pbiFields[3]);
                    affectedBale.WeightFromScale = affectedBale.NetWeight + 3.0M;
                    affectedBale.TareWeight      = 3.0M;
                    affectedBale.ScanNumber      = lineCount;
                    affectedBale.SyncedToCloud   = false;
                    affectedBale.NetWeight       = decimal.Parse(pbiFields[3]);
                    Console.WriteLine("CREATING PBI: " + affectedBale.PbiNumber + " " + affectedBale.Created.ToString("MM/dd/yyyy HH:mm:ss"));
                    uow.BalesRepository.Add(affectedBale);
                }
                uow.SaveChanges();
            }
            #endregion
        }
        private void btnRun_Click(object sender, EventArgs e)
        {
            decimal turnOutRatio    = 0.00M;
            decimal overragePercent = 0.00M;

            if (string.IsNullOrWhiteSpace(txtTurnOutMultiplier.Text) || !decimal.TryParse(txtTurnOutMultiplier.Text, out turnOutRatio) || turnOutRatio < 0.00M || turnOutRatio > 1.00M)
            {
                MessageBox.Show("Please enter a valid turn out as a decimal between 0 and 1.");
                return;
            }

            if (string.IsNullOrWhiteSpace(txtOverrageThreshold.Text) || !decimal.TryParse(txtOverrageThreshold.Text, out overragePercent) || overragePercent < 0.00M || overragePercent > 100.00M)
            {
                MessageBox.Show("Please enter a valid overrage percentage as a decimal between 0 and 100.");
                return;
            }

            List <ModuleEntity> modules = new List <ModuleEntity>();
            List <BaleEntity>   bales   = new List <BaleEntity>();

            int startModuleIndex = int.MaxValue;
            int endModuleIndex   = -1;
            int startBaleIndex   = int.MaxValue;

            //find index of first and last selected module rows
            foreach (DataGridViewRow row in gridViewModules.SelectedRows)
            {
                if (row.Index < startModuleIndex)
                {
                    startModuleIndex = row.Index;
                }

                if (row.Index > endModuleIndex)
                {
                    endModuleIndex = row.Index;
                }
            }

            //get list of modules we are going to accumulate bale weights for
            for (int i = startModuleIndex; i <= endModuleIndex; i++)
            {
                ModuleEntity m = (ModuleEntity)gridViewModules.Rows[i].DataBoundItem;
                m.Bales.Clear(); // need to clear bales because we will be re-assigning
                modules.Add(m);
            }

            //get index of first bale to use as starting point for accumulation
            foreach (DataGridViewRow row in gridViewPBIScans.SelectedRows)
            {
                if (row.Index < startBaleIndex)
                {
                    startBaleIndex = row.Index;
                }
            }

            var firstModule = modules.First();
            var lastModule  = modules.Last();

            //get list of bales we are working with
            for (var i = startBaleIndex; i < gridViewPBIScans.Rows.Count; i++)
            {
                BaleEntity b = (BaleEntity)gridViewPBIScans.Rows[i].DataBoundItem;
                bales.Add(b);
            }

            var firstBale = bales.First();

            if (MessageBox.Show("Accumulation will start with module " + firstModule.Name
                                + " and end with module " + lastModule.Name
                                + ". Lint weight accumulation will begin with bale "
                                + firstBale.PbiNumber + " using a turnout ratio of " + turnOutRatio.ToString() + ". Would you like to continue?  Any previous mappings for this data set will be overwritten.",
                                "Continue?", MessageBoxButtons.YesNo)
                == DialogResult.Yes)
            {
                BusyMessage.Show("Step 1 - Calculating estimated load and module lint turn out.", this.FindForm());

                Task.Run(() =>
                {
                    try
                    {
                        using (IUnitOfWork uow = UnitOfWorkFactory.CreateUnitOfWork())
                        {
                            uow.ModuleRepository.DisableChangeTracking();
                            int moduleCount = 1;
                            foreach (var m in modules)
                            {
                                m.GinLoad.LintWeight = m.GinLoad.NetWeight * turnOutRatio;

                                if (m.HIDModuleWeightLBS.HasValue)
                                {
                                    m.NetSeedCottonWeight = m.HIDModuleWeightLBS.Value;
                                }
                                else if (m.DiameterApproximatedWeight.HasValue)
                                {
                                    m.NetSeedCottonWeight = m.DiameterApproximatedWeight.Value;
                                }
                                else
                                {
                                    m.NetSeedCottonWeight = m.LoadAvgModuleWeight.Value;
                                }
                                m.LintWeight = m.NetSeedCottonWeight * turnOutRatio;
                                uow.GinLoadRepository.QuickUpdate(m.GinLoad, false);
                                uow.ModuleRepository.QuickUpdate(m, false);

                                if (moduleCount % 25 == 0)
                                {
                                    BusyMessage.UpdateMessage("Step 1 - Calculating lint turn out for module " + moduleCount.ToString() + " of " + modules.Count().ToString());
                                }
                                moduleCount++;
                            }
                            BusyMessage.UpdateMessage("Step 1 - Saving lint weight estimates.");
                            uow.SaveChanges();
                        }

                        BusyMessage.UpdateMessage("Step 2 - Accumulating bale lint weights");

                        using (IUnitOfWork uow = UnitOfWorkFactory.CreateUnitOfWork())
                        {
                            uow.ModuleRepository.DisableChangeTracking();
                            uow.BalesRepository.DisableChangeTracking();
                            decimal overrage              = 0.00M;
                            decimal carryOver             = 0.00M;
                            int currentBaleIndex          = 0;
                            decimal accumulatedLintWeight = 0.00M;
                            bool startNewAccumulation     = true;

                            for (int i = 0; i < modules.Count(); i++)
                            {
                                if (i % 25 == 0)
                                {
                                    BusyMessage.UpdateMessage("Step 2 - Accumulating for module " + (i + 1).ToString() + " of " + modules.Count().ToString());
                                }
                                var m = modules[i];
                                startNewAccumulation = false;
                                while (!startNewAccumulation && currentBaleIndex < bales.Count())
                                {
                                    var b = bales[currentBaleIndex];
                                    Logging.Logger.Log("INFO", "Accumulating weight for bale: " + b.PbiNumber);
                                    b.OverrageThreshold = overragePercent;
                                    b.LintTurnout       = turnOutRatio;
                                    if (accumulatedLintWeight + bales[currentBaleIndex].NetWeight + carryOver <= m.LintWeight)
                                    {
                                        Logging.Logger.Log("INFO", "Bale weight under module weight");
                                        //map bale to current module/gin load
                                        accumulatedLintWeight += b.NetWeight + carryOver;
                                        b.ModuleId             = m.Id;
                                        b.Module              = null;
                                        b.ModuleSerialNumber  = m.Name;
                                        b.GinLoadId           = m.GinLoadId;
                                        b.GinTicketLoadNumber = m.GinLoad.GinTagLoadNumber;
                                        b.AccumWeight         = accumulatedLintWeight;
                                        b.OverrageAdjustment  = carryOver;
                                        b.LintTurnout         = turnOutRatio;
                                        carryOver             = 0.00M;
                                        uow.BalesRepository.QuickUpdate(b, true);
                                    }
                                    else
                                    {
                                        startNewAccumulation   = true;
                                        overrage               = accumulatedLintWeight + b.NetWeight - m.LintWeight.Value;
                                        accumulatedLintWeight += b.NetWeight + carryOver;
                                        //if > overrage % of weight belongs to next module map to next and subtract off portion belonging to current
                                        if ((overrage / b.NetWeight) > (1.00M - (overragePercent / 100.00M)))
                                        {
                                            Logging.Logger.Log("INFO", "Bale will be assigned to next module");
                                            int nextModuleIndex = i + 1;
                                            if (nextModuleIndex < modules.Count())
                                            {
                                                Logging.Logger.Log("INFO", "Bale ModuleID: " + b.ModuleId);
                                                b.ModuleId            = modules[nextModuleIndex].Id;
                                                b.Module              = null;
                                                b.ModuleSerialNumber  = modules[nextModuleIndex].Name;
                                                b.GinLoadId           = modules[nextModuleIndex].GinLoadId;
                                                b.GinTicketLoadNumber = modules[nextModuleIndex].GinLoad.GinTagLoadNumber;

                                                //adjust accumulation for next module by subtracting off weight from bale
                                                //applied to current module
                                                carryOver             = 0.00M - (b.NetWeight - overrage);
                                                accumulatedLintWeight = b.NetWeight + carryOver;
                                                b.AccumWeight         = accumulatedLintWeight;
                                                b.OverrageAdjustment  = carryOver;
                                                uow.BalesRepository.QuickUpdate(b, true);
                                                carryOver = 0;
                                            }
                                        }
                                        else //bale belongs to current module
                                        {
                                            Logging.Logger.Log("INFO", "Bale assigned to current module");
                                            b.ModuleId            = m.Id;
                                            b.Module              = null;
                                            b.ModuleSerialNumber  = m.Name;
                                            b.GinLoadId           = m.GinLoadId;
                                            b.GinTicketLoadNumber = m.GinLoad.GinTagLoadNumber;
                                            b.AccumWeight         = accumulatedLintWeight;
                                            b.OverrageAdjustment  = carryOver;
                                            uow.BalesRepository.QuickUpdate(b, true);
                                            carryOver             = overrage;
                                            accumulatedLintWeight = 0.00M;
                                        }
                                    }
                                    if (b.Module != null && b.ModuleId != b.Module.Id)
                                    {
                                        Logging.Logger.Log("INFO", "MISMATCH IDS");
                                    }
                                    currentBaleIndex++;
                                }

                                if (i % 25 == 0) //save every 25 modules
                                {
                                    uow.SaveChanges();
                                }
                            }
                            uow.SaveChanges();
                        }

                        BusyMessage.Close();
                    }
                    catch (Exception exc)
                    {
                        BusyMessage.Close();
                        this.Invoke((MethodInvoker) delegate
                        {
                            MessageBox.Show("An exception occurred: " + exc.Message);
                        });

                        Logging.Logger.Log(exc);
                    }
                });
            }
        }
Пример #26
0
        static void MainTask(string[] args)
        {
            string dir = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

            dir = dir.TrimEnd('\\') + "\\" + FolderConstants.ROOT_APP_DATA_FOLDER;

            if (!System.IO.Directory.Exists(dir))
            {
                System.IO.Directory.CreateDirectory(dir);
            }

            CottonDBMS.Logging.Logger.SetLogPath(Environment.CurrentDirectory);

            AppDomain.CurrentDomain.SetData("DataDirectory", dir.TrimEnd('\\'));

            InitializeDataSources();

            Console.WriteLine("Would you like to generate sample data for PBI algorithm? (Y/N)");
            string response = Console.ReadLine();

            if (response.ToUpper() == "Y")
            {
                createPBIData();
                Console.WriteLine("PBI Data generated.  Press enter to exit.");
                Console.ReadLine();
                return;
            }

            string clientStartNumber = "";

            Console.WriteLine("Enter client start number: ");
            clientStartNumber = Console.ReadLine();
            int clientStartNum = 0;

            int.TryParse(clientStartNumber, out clientStartNum);

            Console.WriteLine("Enter number of clients to generate: ");
            string numClientsStr = Console.ReadLine();

            Console.WriteLine("Enter number of farms per client: ");
            string numFarmsPerClientStr = Console.ReadLine();

            Console.WriteLine("Enter number of fields per client: ");
            string numFieldsPerFarmStr = Console.ReadLine();

            Console.WriteLine("Enter number of modules per field: ");
            string numModulesPerFieldStr = Console.ReadLine();

            //Console.WriteLine("Enter number of modules per load: ");
            //string numModulesPerLoad = Console.ReadLine();

            int numClients         = 1;
            int numFarmsPerClient  = 1;
            int numFieldsPerFarm   = 1;
            int numModulesPerField = 1;
            //int numModulesPerLoad = 4;


            double clientFieldLat  = fieldStartLat + (rand.NextDouble() * 1);
            double clientFieldLong = fieldStartLong + (rand.NextDouble() * 1);

            List <ClientEntity> clientsToAdd = new List <ClientEntity>();
            List <ModuleEntity> modulesToAdd = new List <ModuleEntity>();

            int.TryParse(numClientsStr, out numClients);
            int.TryParse(numFarmsPerClientStr, out numFarmsPerClient);
            int.TryParse(numFieldsPerFarmStr, out numFieldsPerFarm);
            int.TryParse(numModulesPerFieldStr, out numModulesPerField);

            string[] drivers = { "John Doe", "Jerry Jones", "E. Smith" };
            string[] trucks  = { "Truck 1", "Truck 2", "Truck 3", "Truck 4" };


            int totalModules = 1;
            int loadNumber   = 1;

            for (int clientIndex = 0; clientIndex < numClients; clientIndex++)
            {
                var client = new ClientEntity();

                client.Name  = string.Format("Client {0}", (clientIndex + clientStartNum));
                client.Farms = new List <FarmEntity>();
                clientsToAdd.Add(client);

                for (int farmCount = 1; farmCount <= numFarmsPerClient; farmCount++)
                {
                    var farm = new FarmEntity();
                    farm.Id     = Guid.NewGuid().ToString();
                    farm.Name   = string.Format("{0} - Farm {1}", client.Name, farmCount);
                    farm.Fields = new List <FieldEntity>();
                    for (int fieldCount = 1; fieldCount <= numFieldsPerFarm; fieldCount++)
                    {
                        DateTime addDate = DateTime.UtcNow.AddDays(rand.Next(30) * -1);
                        var      field   = new FieldEntity();
                        field.Id        = Guid.NewGuid().ToString();
                        field.Name      = string.Format("{0} - Field {1}", farm.Name, fieldCount);
                        field.Modules   = new List <ModuleEntity>();
                        field.Latitude  = clientFieldLat;
                        field.Longitude = clientFieldLong;
                        field.Created   = addDate;
                        farm.Fields.Add(field);

                        totalFields++;

                        int fieldCol = 1;
                        int fieldRow = 1;

                        clientFieldLat  = fieldStartLat + (rand.NextDouble());
                        clientFieldLong = fieldStartLong + (rand.NextDouble());

                        for (int moduleCount = 1; moduleCount <= numModulesPerField; moduleCount++)
                        {
                            ModuleEntity module = new ModuleEntity();
                            module.Id         = Guid.NewGuid().ToString();
                            module.Name       = totalModules.ToString().PadLeft(7, '0');
                            module.FieldId    = field.Id;
                            module.TruckID    = trucks[rand.Next(trucks.Length - 1)];
                            module.Driver     = drivers[rand.Next(drivers.Length - 1)];
                            module.LoadNumber = "2019M" + loadNumber.ToString().PadLeft(7, '0');

                            int weightSelector = rand.Next(1, 4);

                            if (weightSelector == 1) //use module weight
                            {
                                module.HIDDiameter     = rand.Next(225, 240);
                                module.HIDModuleWeight = rand.Next(2200, 2650);
                            }
                            else if (weightSelector == 2) //use diameter
                            {
                                module.HIDDiameter     = rand.Next(225, 240);
                                module.HIDModuleWeight = null;
                            }
                            else
                            {
                                module.HIDDiameter     = null;
                                module.HIDModuleWeight = null;
                            }

                            totalModules++;

                            if (totalModules % 4 == 0)
                            {
                                loadNumber++;
                            }

                            module.Latitude      = clientFieldLat + (fieldRow * fieldLatIncrement);
                            module.Longitude     = clientFieldLong + (fieldCol * fieldLongIncrement);
                            module.ModuleStatus  = ModuleStatus.IN_FIELD;
                            module.Created       = addDate;
                            module.ModuleHistory = new List <ModuleHistoryEntity>();
                            var historyItem = new ModuleHistoryEntity
                            {
                                Id              = Guid.NewGuid().ToString(),
                                Created         = addDate,
                                Driver          = module.Driver,
                                TruckID         = module.TruckID,
                                Latitude        = module.Latitude,
                                Longitude       = module.Longitude,
                                ModuleEventType = ModuleEventType.IMPORTED_FROM_FILE
                            };
                            field.Modules.Add(module);
                            module.ModuleHistory.Add(historyItem);
                            modulesToAdd.Add(module);
                            fieldCol++;
                            if (fieldCol >= 25)
                            {
                                fieldCol = 1;
                                fieldRow++;
                            }
                        }
                    }
                    client.Farms.Add(farm);
                }

                processClients(client, modulesToAdd);

                clientsToAdd.Clear();
                modulesToAdd.Clear();
            }

            createGinLoads();
            createFeederScans();

            Console.WriteLine("Test data generation complete.");
            Console.ReadLine();
        }
Пример #27
0
        public async Task <bool> RoleValidate(string userId, string roleId)
        {
            var authorizeurldata = new List <AuthorizeActionModel>();
            var rolelist         = roleId.Split(',');
            var user             = await userApp.GetForm(userId);

            if (user == null || user.F_EnabledMark == false)
            {
                return(false);
            }
            var cachedata = await CacheHelper.Get <Dictionary <string, List <AuthorizeActionModel> > >(cacheKey + "authorize_list");

            if (cachedata == null)
            {
                cachedata = new Dictionary <string, List <AuthorizeActionModel> >();
            }
            foreach (var roles in rolelist)
            {
                if (!cachedata.ContainsKey(roles))
                {
                    var moduledata = await moduleApp.GetList();

                    moduledata = moduledata.Where(a => a.F_EnabledMark == true).ToList();
                    var buttondata = await moduleButtonApp.GetList();

                    buttondata = buttondata.Where(a => a.F_EnabledMark == true).ToList();
                    var role = await uniwork.FindEntity <RoleEntity>(roles);

                    if (role != null && role.F_EnabledMark != false)
                    {
                        var authdata      = new List <AuthorizeActionModel>();
                        var authorizedata = await GetList(roles);

                        foreach (var item in authorizedata)
                        {
                            try
                            {
                                if (item.F_ItemType == 1)
                                {
                                    ModuleEntity moduleEntity = moduledata.Find(t => t.F_Id == item.F_ItemId && t.F_IsPublic == false);
                                    if (moduleEntity != null)
                                    {
                                        authdata.Add(new AuthorizeActionModel {
                                            F_Id = moduleEntity.F_Id, F_UrlAddress = moduleEntity.F_UrlAddress, F_Authorize = moduleEntity.F_Authorize
                                        });
                                    }
                                }
                                else if (item.F_ItemType == 2)
                                {
                                    ModuleButtonEntity moduleButtonEntity = buttondata.Find(t => t.F_Id == item.F_ItemId && t.F_IsPublic == false);
                                    if (moduleButtonEntity != null)
                                    {
                                        authdata.Add(new AuthorizeActionModel {
                                            F_Id = moduleButtonEntity.F_ModuleId, F_UrlAddress = moduleButtonEntity.F_UrlAddress, F_Authorize = moduleButtonEntity.F_Authorize
                                        });
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                string e = ex.Message;
                                continue;
                            }
                        }
                        authdata.AddRange(moduledata.Where(a => a.F_IsPublic == true).Select(a => new AuthorizeActionModel {
                            F_Id = a.F_Id, F_UrlAddress = a.F_UrlAddress, F_Authorize = a.F_Authorize
                        }).ToList());
                        authdata.AddRange(buttondata.Where(a => a.F_IsPublic == true).Select(a => new AuthorizeActionModel {
                            F_Id = a.F_ModuleId, F_UrlAddress = a.F_UrlAddress, F_Authorize = a.F_Authorize
                        }).ToList());
                        cachedata.Add(roles, authdata);
                        authorizeurldata.AddRange(authdata);
                        await CacheHelper.Remove(cacheKey + "authorize_list");

                        await CacheHelper.Set(cacheKey + "authorize_list", cachedata);
                    }
                }
                else
                {
                    authorizeurldata.AddRange(cachedata[roles]);
                }
            }
            if (authorizeurldata.Count > 0)
            {
                return(true);
            }
            return(false);
        }
Пример #28
0
 public ModuleEntity SaveFrom(ModuleEntity saveModel)
 {
     return(Save(saveModel, "module_"));
 }
Пример #29
0
 private void AddInternalModule(ModuleEntity moduleEntity)
 {
     NameResolutionService.GetNamespace(moduleEntity.Namespace).AddModule(moduleEntity);
 }
Пример #30
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                ValidateForm();
                if (!hasError)
                {
                    if (dataObj != null && !string.IsNullOrWhiteSpace(dataObj.GinTagLoadNumber) && string.IsNullOrWhiteSpace(tbGinTicketLoadNumber.Text))
                    {
                        if (MessageBox.Show("You have removed the gin ticket load number from this module.  Are you sure you want to save?  This will remove the module from gin ticket load " + dataObj.GinTagLoadNumber + ".", "Confirm", MessageBoxButtons.YesNo) != DialogResult.Yes)
                        {
                            return;
                        }
                    }


                    using (var uow = UnitOfWorkFactory.CreateUnitOfWork()) {
                        var ginLoadId = uow.GinLoadRepository.GetLoadIdForGinTicketNumber(tbGinTicketLoadNumber.Text.Trim());

                        if (string.IsNullOrEmpty(ginLoadId) && !string.IsNullOrWhiteSpace(tbGinTicketLoadNumber.Text))
                        {
                            if (MessageBox.Show("You have entered a gin ticket load number that does not yet have a matching load record from the scale bridge.  Are you sure you want to save? ", "Confirm", MessageBoxButtons.YesNo) != DialogResult.Yes)
                            {
                                return;
                            }
                        }


                        BusyMessage.Show("Saving...", this.FindForm());
                        BaseEntity   selectedStatus       = (BaseEntity)tbStatus.SelectedItem;
                        ModuleStatus selectedModuleStatus = (ModuleStatus)int.Parse(selectedStatus.Id);
                        ModuleEntity existingModule       = null;

                        if (dataObj == null)
                        {
                            existingModule = new ModuleEntity();
                        }
                        else
                        {
                            existingModule = uow.ModuleRepository.GetById(dataObj.Id, "Field.Farm.Client");
                        }

                        //ensure client, farm, and field are created
                        var client = clientSelector1.GetOrCreateClientEntity();
                        var farm   = farmSelector1.GetOrCreateFarmEntity(client);
                        var field  = fieldSelector1.GetOrCreateFieldEntity(farm);


                        string truck  = (cboTruck.SelectedIndex > 0) ? ((BaseEntity)cboTruck.SelectedItem).Name : "";
                        string driver = (cboDriver.SelectedIndex > 0) ? ((BaseEntity)cboDriver.SelectedItem).Name : "";

                        existingModule.Name             = tbSerialNumber.Text.Trim();
                        existingModule.ModuleId         = tbModuleID.Text.Trim();
                        existingModule.FieldId          = field.Id;
                        existingModule.Name             = tbSerialNumber.Text.Trim();
                        existingModule.Driver           = driver;
                        existingModule.TruckID          = truck;
                        existingModule.Latitude         = double.Parse(tbLatitude.Text);
                        existingModule.Longitude        = double.Parse(tbLongitude.Text);
                        existingModule.ModuleStatus     = selectedModuleStatus;
                        existingModule.Notes            = tbNotes.Text.Trim();
                        existingModule.GinLoadId        = ginLoadId;
                        existingModule.GinTagLoadNumber = tbGinTicketLoadNumber.Text.Trim();

                        ModuleHistoryEntity historyItem = new ModuleHistoryEntity
                        {
                            Id              = Guid.NewGuid().ToString(),
                            Created         = DateTime.UtcNow,
                            Driver          = existingModule.Driver,
                            TruckID         = existingModule.TruckID,
                            Latitude        = existingModule.Latitude,
                            Longitude       = existingModule.Longitude,
                            ModuleEventType = ModuleEventType.MANUAL_EDIT
                        };
                        historyItem.ModuleStatus = existingModule.ModuleStatus;
                        existingModule.ModuleHistory.Add(historyItem);
                        existingModule.SyncedToCloud = false;
                        uow.ModuleRepository.Save(existingModule);
                        uow.SaveChanges();

                        this.DialogResult = DialogResult.OK;
                        this.Close();
                    }
                }
                else
                {
                    this.Activate();
                }
            }
            catch (Exception exc)
            {
                Logging.Logger.Log(exc);
                MessageBox.Show("An error occurred trying to save module.");
            }
            finally
            {
                BusyMessage.Close();
            }
        }