public DataResult GetSmartProcessCodeCategoryProcess([FromQuery] int qId, int cId)
        {
            var result = new DataResult();

            result.datas.AddRange(SmartProcessCodeCategoryProcessHelper.GetDetail(qId, cId));
            if (qId != 0 && !result.datas.Any())
            {
                result.errno = Error.SmartProcessCodeCategoryProcessNotExist;
                return(result);
            }
            return(result);
        }
        public Result PostSmartCapacityList([FromBody] IEnumerable <SmartCapacityList> smartCapacityLists)
        {
            if (smartCapacityLists == null || !smartCapacityLists.Any())
            {
                return(Result.GenError <Result>(Error.ParamError));
            }
            if (smartCapacityLists.Any(x => !x.IsSet()))
            {
                return(Result.GenError <Result>(Error.SmartCapacityListNotEmpty));
            }

            var capacityId = smartCapacityLists.FirstOrDefault()?.CapacityId ?? 0;

            if (capacityId == 0)
            {
                return(Result.GenError <Result>(Error.SmartCapacityNotExist));
            }

            var capacity = SmartCapacityHelper.Instance.Get <SmartCapacity>(capacityId);

            if (capacity == null)
            {
                return(Result.GenError <Result>(Error.SmartCapacityNotExist));
            }

            var processes = SmartProcessCodeCategoryProcessHelper.GetDetailByCategoryId(capacity.CategoryId);

            if (!processes.Any())
            {
                return(Result.GenError <Result>(Error.SmartProcessCodeCategoryProcessNotExist));
            }

            if (smartCapacityLists.Count() != processes.Count())
            {
                return(Result.GenError <Result>(Error.SmartCapacityListCountError));
            }

            var userId         = Request.GetIdentityInformation();
            var markedDateTime = DateTime.Now;

            foreach (var smartCapacityList in smartCapacityLists)
            {
                smartCapacityList.CreateUserId   = userId;
                smartCapacityList.MarkedDateTime = markedDateTime;
                smartCapacityList.CapacityId     = capacityId;
            }
            SmartCapacityListHelper.Instance.DeleteFromParent(capacityId);
            SmartCapacityListHelper.Instance.Add(smartCapacityLists);
            OldWorkFlowHelper.Instance.OnSmartCapacityListChanged(smartCapacityLists);
            return(Result.GenError <Result>(Error.Success));
        }
示例#3
0
        public DataResult GetSmartProcessCode([FromQuery] int qId, int cId, int wId, bool menu)
        {
            var result = new DataResult();
            var data   = SmartProcessCodeHelper.GetDetail(qId, cId, wId);

            if (menu)
            {
                result.datas.AddRange(data.Select(x => new { x.Id, x.Code }));
            }
            else
            {
                var processIds = data.SelectMany(x => x.ProcessIdList).Distinct();
                if (processIds.Any())
                {
                    var processList = SmartProcessCodeCategoryProcessHelper.GetProcess(processIds);
                    if (processList.Any())
                    {
                        foreach (var d in data)
                        {
                            foreach (var processId in d.ProcessIdList)
                            {
                                var process = processList.FirstOrDefault(x => x.Id == processId);
                                if (process != null)
                                {
                                    d.ProcessList.Add(process.Process);
                                }
                            }
                        }
                    }
                }
                result.datas.AddRange(data);
            }

            if (qId != 0 && !result.datas.Any())
            {
                result.errno = Error.SmartProcessCodeNotExist;
                return(result);
            }
            return(result);
        }
示例#4
0
        public void Register()
        {
            #region 用户
            AddAccount += (o, args) =>
            {
                try
                {
                    var time     = args.Item1;
                    var accounts = args.Item2;
                    var plats    = accounts.Where(x => x.Platform && x.Belongs.Any());
                    if (plats.Any())
                    {
                        WorkHelper.Instance.Add(plats.SelectMany(x => x.Belongs.Select(y => new Person
                        {
                            MarkedDateTime = time,
                            WorkshopId     = y,
                            AccountId      = x.Id,
                        })));
                    }
                }
                catch (Exception e)
                {
                    Log.Error(e);
                }
            };

            UpdateAccount += (o, args) =>
            {
                try
                {
                    var time        = args.Item1;
                    var newAccounts = args.Item2;
                    var oldAccounts = args.Item3;
                    //生产平台
                    var oldAccountDic = oldAccounts.ToDictionary(x => x.Id);

                    var plats = newAccounts.Where(x => oldAccountDic[x.Id].Platform != x.Platform || oldAccountDic[x.Id].Belong != x.Belong);
                    if (plats.Any())
                    {
                        var wIds = plats.SelectMany(x => x.Belongs).Distinct();
                        var aIds = plats.Select(x => x.Id).Distinct();
                        if (plats.Any() && plats.Any())
                        {
                            var oldWIds = plats.SelectMany(x => oldAccountDic[x.Id].Belongs).Distinct();
                            var pers    = WorkHelper.GetDetailsNoM(oldWIds, aIds);
                            var add     = new List <Person>();
                            var delR    = new List <Person>();
                            var del     = new List <int>();

                            var platTmps = plats.Where(x => x.Platform).SelectMany(x => x.Belongs
                                                                                   .Select(y => new Person
                            {
                                MarkedDateTime = time,
                                WorkshopId     = y,
                                AccountId      = x.Id,
                            }));
                            add.AddRange(platTmps.Where(x => !pers.Any(y => y.WorkshopId == x.WorkshopId && y.AccountId == x.AccountId)));
                            delR.AddRange(pers.Where(x => platTmps.Any(y => y.WorkshopId == x.WorkshopId && y.AccountId == x.AccountId) && x.MarkedDelete).Select(x =>
                            {
                                x.MarkedDateTime = time;
                                x.MarkedDelete   = false;
                                return(x);
                            }));
                            del.AddRange(pers.Where(x => !platTmps.Any(y => y.WorkshopId == x.WorkshopId && y.AccountId == x.AccountId)).Select(x => x.Id));
                            if (add.Any())
                            {
                                WorkHelper.Instance.Add(add);
                            }
                            if (delR.Any())
                            {
                                WorkHelper.DeleteRecover(delR);
                            }
                            if (del.Any())
                            {
                                WorkHelper.Instance.Delete(del);
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                    Log.Error(e);
                }
            };

            DeleteAccount += (o, accountIds) =>
            {
                try
                {
                    var time     = DateTime.Now;
                    var accounts = AccountInfoHelper.Instance.GetByIdsNoM <AccountInfo>(accountIds);
                    var plats    = accounts.Where(x => x.Platform && x.Belongs.Any());
                    if (plats.Any())
                    {
                        WorkHelper.Instance.DeleteFromParent(plats.Select(x => x.Id));
                    }
                }
                catch (Exception e)
                {
                    Log.Error(e);
                }
            };
            #endregion

            #region 流程卡
            SmartFlowCardCreated += (o, flowCards) =>
            {
            };

            SmartFlowCardProcessCreated += (o, param) =>
            {
                var flowCards = param.Item1;
                if (flowCards == null || !flowCards.Any())
                {
                    return;
                }

                var smartFlowCardProcesses = param.Item2;
                if (smartFlowCardProcesses == null || !smartFlowCardProcesses.Any())
                {
                    return;
                }

                var createUserId           = smartFlowCardProcesses.First().CreateUserId;
                var markedDateTime         = smartFlowCardProcesses.First().MarkedDateTime;
                var taskOrderIds           = flowCards.GroupBy(x => x.TaskOrderId).Select(y => y.Key);
                var processCodeCategoryIds = flowCards.GroupBy(x => x.ProcessCodeId).Select(y => y.Key);
                var processes =
                    SmartProcessCodeCategoryProcessHelper.GetDetailByCategoryId(processCodeCategoryIds);
                var existTaskOrderLines = ServerConfig.ApiDb
                                          .Query <SmartLineTaskOrder>(
                    "SELECT TaskOrderId, ProcessCodeCategoryId FROM `t_line_task_order` " +
                    "WHERE MarkedDelete = 0 AND TaskOrderId IN @taskOrderIds AND ProcessCodeCategoryId IN @processCodeCategoryIds GROUP BY TaskOrderId, ProcessCodeCategoryId;",
                    new { taskOrderIds, processCodeCategoryIds });

                var taskOrderLines = new List <SmartLineTaskOrder>();
                foreach (var taskOrderId in taskOrderIds)
                {
                    var ids = flowCards.Where(x => x.TaskOrderId == taskOrderId).GroupBy(y => y.ProcessCodeId).Select(z => z.Key);
                    foreach (var id in ids)
                    {
                        if (existTaskOrderLines.Any(x => x.TaskOrderId == taskOrderId && x.ProcessCodeCategoryId == id))
                        {
                            continue;
                        }
                        var ps = processes.Where(x => x.ProcessCodeCategoryId == id);
                        if (!ps.Any())
                        {
                            continue;
                        }
                        taskOrderLines.AddRange(ps.Select(x => new SmartLineTaskOrder
                        {
                            CreateUserId          = createUserId,
                            MarkedDateTime        = markedDateTime,
                            TaskOrderId           = taskOrderId,
                            ProcessCodeCategoryId = id,
                            ProcessId             = x.Id,
                        }));
                    }
                }


                var taskOrders          = SmartTaskOrderHelper.Instance.GetByIds <SmartTaskOrder>(taskOrderIds);
                var workOrderIds        = taskOrders.GroupBy(x => x.WorkOrderId).Select(y => y.Key);
                var existWorkOrderLines = ServerConfig.ApiDb
                                          .Query <SmartLineWorkOrder>(
                    "SELECT WorkOrderId, ProcessCodeCategoryId FROM `t_line_work_order` " +
                    "WHERE MarkedDelete = 0 AND WorkOrderId IN @workOrderIds AND ProcessCodeCategoryId IN @processCodeCategoryIds GROUP BY WorkOrderId, ProcessCodeCategoryId;",
                    new { workOrderIds, processCodeCategoryIds });
                var workOrderLines = new List <SmartLineWorkOrder>();

                foreach (var workOrderId in workOrderIds)
                {
                    var tasks = taskOrders.Where(x => x.WorkOrderId == workOrderId);
                    var ids   = flowCards.Where(x => tasks.Any(a => a.Id == x.TaskOrderId)).GroupBy(y => y.ProcessCodeId).Select(z => z.Key);
                    foreach (var id in ids)
                    {
                        if (existWorkOrderLines.Any(x => x.WorkOrderId == workOrderId && x.ProcessCodeCategoryId == id))
                        {
                            continue;
                        }
                        var ps = processes.Where(x => x.ProcessCodeCategoryId == id);
                        if (!ps.Any())
                        {
                            continue;
                        }

                        workOrderLines.AddRange(ps.Select(x => new SmartLineWorkOrder
                        {
                            CreateUserId          = createUserId,
                            MarkedDateTime        = markedDateTime,
                            WorkOrderId           = workOrderId,
                            ProcessCodeCategoryId = id,
                            ProcessId             = x.Id,
                        }));
                    }
                }

                SmartLineTaskOrderHelper.Instance.Add <SmartLineTaskOrder>(taskOrderLines);
                SmartLineWorkOrderHelper.Instance.Add <SmartLineWorkOrder>(workOrderLines);
            };
            #endregion


            #region 物料
            #endregion
        }
        public Result PutSmartProcessCodeCategory([FromBody] IEnumerable <SmartProcessCodeCategoryDetail> processCodeCategories)
        {
            if (processCodeCategories == null || !processCodeCategories.Any())
            {
                return(Result.GenError <Result>(Error.ParamError));
            }
            if (processCodeCategories.Any(x => x.Category.IsNullOrEmpty()))
            {
                return(Result.GenError <Result>(Error.SmartProcessCodeCategoryNotEmpty));
            }
            if (processCodeCategories.GroupBy(x => x.Category).Any(y => y.Count() > 1))
            {
                return(Result.GenError <Result>(Error.SmartProcessCodeCategoryDuplicate));
            }

            var wId   = processCodeCategories.FirstOrDefault()?.WorkshopId ?? 0;
            var sames = processCodeCategories.Select(x => x.Category);
            var ids   = processCodeCategories.Select(x => x.Id);

            if (SmartProcessCodeCategoryHelper.GetHaveSame(wId, sames, ids))
            {
                return(Result.GenError <Result>(Error.SmartProcessCodeCategoryIsExist));
            }

            var cnt = SmartProcessCodeCategoryHelper.Instance.GetCountByIds(ids);

            if (cnt != processCodeCategories.Count())
            {
                return(Result.GenError <Result>(Error.SmartProcessCodeCategoryNotExist));
            }
            var processCodeCategoryIds = processCodeCategories.Select(x => x.Id);
            var data = SmartProcessCodeCategoryHelper.Instance.GetByIds <SmartProcessCodeCategory>(processCodeCategoryIds);

            if (data.Count() != processCodeCategories.Count())
            {
                return(Result.GenError <Result>(Error.SmartProcessCodeCategoryNotExist));
            }

            var userId         = Request.GetIdentityInformation();
            var markedDateTime = DateTime.Now;
            var add            = new List <SmartProcessCodeCategoryProcess>();
            var update         = new List <SmartProcessCodeCategoryProcess>();
            var exist          = SmartProcessCodeCategoryProcessHelper.GetDetailByCategoryId(processCodeCategories.Select(x => x.Id));

            foreach (var processCodeCategory in processCodeCategories)
            {
                processCodeCategory.CreateUserId   = userId;
                processCodeCategory.MarkedDateTime = markedDateTime;
                processCodeCategory.Remark         = processCodeCategory.Remark ?? "";
                processCodeCategory.Processes      = processCodeCategory.Processes.Select(x =>
                {
                    x.ProcessCodeCategoryId = processCodeCategory.Id;
                    return(x);
                });
                var categoryProcesses = exist.Where(x => x.ProcessCodeCategoryId == processCodeCategory.Id);
                if (processCodeCategory.Processes != null && processCodeCategory.Processes.Any())
                {
                    add.AddRange(processCodeCategory.Processes.Where(x => x.Id == 0 && categoryProcesses.FirstOrDefault(a => a.Order == x.Order && a.ProcessId == x.ProcessId) == null)
                                 .Select(y =>
                    {
                        y.CreateUserId          = userId;
                        y.MarkedDateTime        = markedDateTime;
                        y.ProcessCodeCategoryId = processCodeCategory.Id;
                        return(y);
                    }));

                    update.AddRange(processCodeCategory.Processes
                                    .Where(x => categoryProcesses.Any(y => y.Id == x.Id) &&
                                           (ClassExtension.HaveChange(categoryProcesses.First(y => y.Id == x.Id), x))).Select(z =>
                                                                                                                              //|| (x.Id == 0 && categoryProcesses.FirstOrDefault(a => a.Order == x.Order && a.ProcessId == x.ProcessId) != null)).Select(z =>
                    {
                        var first        = categoryProcesses.First(a => a.Id == z.Id);
                        z.Id             = first.Id;
                        z.MarkedDateTime = markedDateTime;
                        return(z);
                    }));

                    update.AddRange(categoryProcesses.Where(x => processCodeCategory.Processes.All(y => y.Id != x.Id)).Select(z =>
                    {
                        z.MarkedDateTime = markedDateTime;
                        z.MarkedDelete   = true;
                        return(z);
                    }));
                }
                else
                {
                    update.AddRange(categoryProcesses.Select(x =>
                    {
                        x.MarkedDateTime = markedDateTime;
                        x.MarkedDelete   = true;
                        return(x);
                    }));
                }
            }
            if (add.Any())
            {
                SmartProcessCodeCategoryProcessHelper.Instance.Add <SmartProcessCodeCategoryProcess>(add);
            }

            if (update.Any())
            {
                SmartProcessCodeCategoryProcessHelper.Instance.Update <SmartProcessCodeCategoryProcess>(update);
            }

            SmartProcessCodeCategoryHelper.Instance.Update(processCodeCategories);
            return(Result.GenError <Result>(Error.Success));
        }
        public object GetSmartCapacityListInfo([FromQuery] int qId, int processId)
        {
            var result           = new DataResult();
            var deviceCategoryId = 0;
            SmartCapacityListDetail capacityList = null;

            if (qId != 0)
            {
                capacityList = SmartCapacityListHelper.GetDetail(qId);
                if (capacityList == null)
                {
                    return(Result.GenError <Result>(Error.SmartCapacityListNotExist));
                }
                var capacity = SmartCapacityHelper.Instance.Get <SmartCapacity>(capacityList.CapacityId);
                if (capacity == null)
                {
                    return(Result.GenError <Result>(Error.SmartCapacityNotExist));
                }

                deviceCategoryId = capacityList.CategoryId;
            }
            else if (processId != 0)
            {
                var process = SmartProcessCodeCategoryProcessHelper.GetDetailByProcessId(processId);
                if (process == null)
                {
                    return(Result.GenError <Result>(Error.SmartProcessCodeCategoryProcessNotExist));
                }

                capacityList = new SmartCapacityListDetail
                {
                    ProcessId = process.Id
                };
                deviceCategoryId = process.CategoryId;
            }
            else
            {
                return(Result.GenError <Result>(Error.ParamError));
            }

            capacityList.PId = SmartProcessCodeCategoryProcessHelper.Instance.Get <SmartProcessCodeCategoryProcess>(capacityList.ProcessId)?.ProcessId ?? 0;
            var actDevices = new List <SmartDeviceCapacity>();

            if (deviceCategoryId != 0)
            {
                var models  = SmartDeviceModelHelper.GetDetail(0, deviceCategoryId);
                var devices = capacityList.DeviceList;
                if (models.Any())
                {
                    var modelCount = SmartDeviceHelper.GetNormalDeviceModelCount(models.Select(x => x.Id));
                    foreach (var model in models)
                    {
                        var device = devices.FirstOrDefault(x => x.ModelId == model.Id) ?? new SmartDeviceCapacity();
                        device.Category   = model.Category;
                        device.CategoryId = model.CategoryId;
                        device.ModelId    = model.Id;
                        device.Model      = model.Model;
                        device.Count      = modelCount.FirstOrDefault(x => x.ModelId == model.Id) != null
                            ? modelCount.FirstOrDefault(x => x.ModelId == model.Id).Count : 0;

                        actDevices.Add(device);
                    }
                }
            }

            var actOperators = new List <SmartOperatorCapacity>();
            var levels       = SmartOperatorLevelHelper.Instance.GetAll <SmartOperatorLevel>().OrderBy(x => x.Order);

            if (levels.Any())
            {
                var operatorCount = SmartOperatorHelper.GetNormalOperatorCount(capacityList.ProcessId);
                var operators     = capacityList.OperatorList;
                if (levels.Any())
                {
                    foreach (var level in levels)
                    {
                        var op = operators.FirstOrDefault(x => x.LevelId == level.Id) ?? new SmartOperatorCapacity();
                        op.Level   = level.Level;
                        op.LevelId = level.Id;
                        op.Count   = operatorCount.FirstOrDefault(x => x.ProcessId == capacityList.PId && x.LevelId == op.LevelId) != null
                            ? operatorCount.FirstOrDefault(x => x.ProcessId == capacityList.PId && x.LevelId == level.Id).Count : 0;

                        actOperators.Add(op);
                    }
                }
            }

            result.datas.Add(capacityList);
            return(new
            {
                errno = 0,
                errmsg = "成功",
                Devices = actDevices,
                Operators = actOperators
            });
        }
        public Result PutSmartCapacityList([FromBody] IEnumerable <SmartCapacityList> capacityLists)
        {
            if (capacityLists == null || !capacityLists.Any())
            {
                return(Result.GenError <Result>(Error.ParamError));
            }

            if (capacityLists.Any(x => !x.IsSet()))
            {
                return(Result.GenError <Result>(Error.SmartCapacityListNotEmpty));
            }

            var capacityId = capacityLists.FirstOrDefault()?.CapacityId ?? 0;

            if (capacityId == 0)
            {
                return(Result.GenError <Result>(Error.ParamError));
            }

            var capacity = SmartCapacityHelper.Instance.Get <SmartCapacity>(capacityId);

            if (capacity == null)
            {
                return(Result.GenError <Result>(Error.SmartCapacityNotExist));
            }

            var processes = SmartProcessCodeCategoryProcessHelper.GetDetailByCategoryId(capacity.CategoryId);

            if (!processes.Any())
            {
                return(Result.GenError <Result>(Error.SmartProcessCodeCategoryProcessNotExist));
            }

            if (capacityLists.Count() != processes.Count())
            {
                return(Result.GenError <Result>(Error.SmartCapacityListCountError));
            }

            var capacityListIds = capacityLists.Select(x => x.Id);
            var data            = SmartCapacityListHelper.Instance.GetByIds <SmartCapacityList>(capacityListIds);

            if (data.Count() != capacityLists.Count())
            {
                return(Result.GenError <Result>(Error.SmartCapacityListNotExist));
            }

            if (capacityLists.Count() != processes.Count())
            {
                return(Result.GenError <Result>(Error.SmartCapacityListCountError));
            }

            var userId         = Request.GetIdentityInformation();
            var markedDateTime = DateTime.Now;

            foreach (var capacityList in capacityLists)
            {
                capacityList.CreateUserId   = userId;
                capacityList.MarkedDateTime = markedDateTime;
                capacityList.CapacityId     = capacityId;
            }
            var oldSmartCapacityLists = SmartCapacityListHelper.GetSmartCapacityLists(capacityId);
            //删除
            var delete = oldSmartCapacityLists.Where(z => capacityLists.Where(x => x.Id != 0).All(y => y.Id != z.Id));

            if (delete.Any())
            {
                SmartCapacityListHelper.Instance.Delete(delete.Select(x => x.Id));
            }
            //更新
            var update = capacityLists.Where(x => x.Id != 0);

            if (update.Any())
            {
                SmartCapacityListHelper.Instance.Update(update);
            }

            //新增
            var add = capacityLists.Where(x => x.Id == 0);

            if (add.Any())
            {
                SmartCapacityListHelper.Instance.Add(add);
            }

            OldWorkFlowHelper.Instance.OnSmartCapacityListChanged(capacityLists);
            return(Result.GenError <Result>(Error.Success));
        }
        public object PutSmartCapacityList([FromBody] OpSmartCapacity capacity)
        {
            var capacityId  = capacity.Id;
            var oldCapacity = SmartCapacityHelper.Instance.Get <SmartCapacity>(capacityId);

            if (oldCapacity == null)
            {
                return(Result.GenError <Result>(Error.SmartCapacityNotExist));
            }

            var capacityLists = capacity.List;

            if (capacityLists == null)
            {
                return(Result.GenError <Result>(Error.SmartCapacityListNotSet));
            }

            var processes = SmartProcessCodeCategoryProcessHelper.GetDetailByCategoryId(capacity.CategoryId);

            if (!processes.Any())
            {
                return(Result.GenError <Result>(Error.SmartProcessCodeCategoryProcessNotExist));
            }

            if (capacityLists.Count() != processes.Count())
            {
                return(Result.GenError <Result>(Error.SmartCapacityListCountError));
            }

            if (capacityLists.Any(x => !x.IsSet()))
            {
                return(Result.GenError <Result>(Error.SmartCapacityListNotEmpty));
            }

            var smartCapacityListIds = capacityLists.Select(x => x.Id).Where(y => y != 0);

            if (smartCapacityListIds.Any())
            {
                var data = SmartCapacityListHelper.Instance.GetByIds <SmartCapacityList>(smartCapacityListIds);
                if (data.Count() != smartCapacityListIds.Count())
                {
                    return(Result.GenError <Result>(Error.SmartCapacityListNotExist));
                }
            }
            var createUserId   = Request.GetIdentityInformation();
            var markedDateTime = DateTime.Now;

            if (oldCapacity.CategoryId != capacity.CategoryId)
            {
                capacity.MarkedDateTime = markedDateTime;
                SmartCapacityHelper.UpdateCategoryId(capacity);
            }

            foreach (var smartCapacityList in capacityLists)
            {
                smartCapacityList.CreateUserId   = createUserId;
                smartCapacityList.MarkedDateTime = markedDateTime;
                smartCapacityList.CapacityId     = capacityId;
            }
            var oldSmartCapacityLists = SmartCapacityListHelper.GetSmartCapacityLists(capacityId);
            //删除
            var delete = oldSmartCapacityLists.Where(z => capacityLists.Where(x => x.Id != 0).All(y => y.Id != z.Id));

            if (delete.Any())
            {
                SmartCapacityListHelper.Instance.Delete(delete.Select(x => x.Id));
            }
            //更新
            var update = capacityLists.Where(x => x.Id != 0);

            if (update.Any())
            {
                SmartCapacityListHelper.Instance.Update(update);
            }

            //新增
            var add = capacityLists.Where(x => x.Id == 0);

            if (add.Any())
            {
                SmartCapacityListHelper.Instance.Add(add);
            }

            OldWorkFlowHelper.Instance.OnSmartCapacityListChanged(capacityLists);
            return(Result.GenError <Result>(Error.Success));
        }