////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public Result Execute(IOperationContext pOpCtx, ICreateOperationBuilder pBuild,
                              CreateOperationTasks pTasks, string pName, long pCreatorMemberId, long pUserId)
        {
            vOpCtx = pOpCtx;
            vBuild = pBuild;
            vTasks = pTasks;

            vDataAcc = vOpCtx.Data.Build(null, true);
            vBuild.SetDataAccess(vDataAcc);

            vName            = pName;
            vCreatorMemberId = pCreatorMemberId;
            vUserId          = pUserId;

            try {
                return(ExecuteSession());
            }
            catch (FabDuplicateFault) {
                return(new Result {
                    Status = ResultStatus.DuplicateAppName
                });
            }
            catch (FabNotFoundFault) {
                return(new Result {
                    Status = ResultStatus.NotFoundMemberOrUser
                });
            }
            catch (Exception e) {
                Log.Error("Unexpected error", e);

                return(new Result {
                    Status = ResultStatus.UnexpectedError
                });
            }
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public static void ClassAfterSessionStart(CreateOperationTasks pTasks,
                                                  ICreateOperationBuilder pBuild, Class pNewDom, CreateFabClass pNewCre)
        {
            string disLow = (pNewDom.Disamb == null ? null : pNewDom.Disamb.ToLower());

            pTasks.FindDuplicateClass(pBuild, pNewDom.NameKey, disLow);
        }
 ////////////////////////////////////////////////////////////////////////////////////////////////
 /*--------------------------------------------------------------------------------------------*/
 public static void InstanceAfterSessionStart(CreateOperationTasks pTasks,
                                              ICreateOperationBuilder pBuild, Instance pNewDom, CreateFabInstance pNewCre)
 {
     if (pNewDom.Name == null && pNewDom.Disamb != null)
     {
         throw new FabPropertyValueFault("Name", null,
                                         "Cannot be null when Disamb is specified.");
     }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////
 /*--------------------------------------------------------------------------------------------*/
 public static void FactorAfterSessionStart(CreateOperationTasks pTasks,
                                            ICreateOperationBuilder pBuild, Factor pNewDom, CreateFabFactor pNewCre)
 {
     if (pNewCre.UsesPrimaryArtifactId == pNewCre.UsesRelatedArtifactId)
     {
         throw new FabPropertyValueFault("RelatedArtifactId", pNewCre.UsesRelatedArtifactId + "",
                                         "Cannot be equal to PrimaryArtifactId");
     }
 }
示例#5
0
        /*--------------------------------------------------------------------------------------------*/
        public virtual TDom Execute(IOperationContext pOpCtx, ICreateOperationBuilder pBuild,
                                    CreateOperationTasks pTasks, TCre pNewCre)
        {
            SetExecuteData(pOpCtx, pBuild, pTasks, pNewCre,
                           pOpCtx.GetSharpflakeId <Vertex>(), pOpCtx.Data.Build(null, true), true);

            Build.SetDataAccess(vDataAcc);

            Build.StartSession();
            CheckAndAddVertex();
            AddEdges();
            Build.CommitAndCloseSession();

            vDataRes = vDataAcc.Execute(GetType().Name);
            Build.PerformChecks(vDataRes);

            int cmdI = vDataRes.GetCommandIndexByCmdId(AddVertexCommandId);

            return(vDataRes.ToElementAt <TDom>(cmdI, 0));
        }
示例#6
0
        /*--------------------------------------------------------------------------------------------*/
        public void SetExecuteData(IOperationContext pOpCtx, ICreateOperationBuilder pBuild,
                                   CreateOperationTasks pTasks, TCre pNewCre, long pVertexId, IDataAccess pAccess,
                                   bool pRequireAuthAndSetCreator)
        {
            vOpCtx    = pOpCtx;
            Build     = pBuild;
            Tasks     = pTasks;
            vDataAcc  = pAccess;
            vVertexId = pVertexId;

            NewCre = pNewCre;

            if (pRequireAuthAndSetCreator)
            {
                VerifyAuthAndSetCreator();
            }

            NewCre.Validate();

            NewDom           = ToDomain(NewCre);
            NewDom.VertexId  = vVertexId;
            NewDom.Timestamp = vOpCtx.UtcNow.Ticks;
        }
        ////////////////////////////////////////////////////////////////////////////////////////////////
        /*--------------------------------------------------------------------------------------------*/
        public Result Execute(IOperationContext pOpCtx, ICreateOperationBuilder pBuild,
                              CreateOperationTasks pTasks, string pEmail, string pUsername, string pPassword)
        {
            vOpCtx = pOpCtx;
            vBuild = pBuild;
            vTasks = pTasks;

            vDataAcc = vOpCtx.Data.Build(null, true);
            vBuild.SetDataAccess(vDataAcc);

            vEmail    = pEmail;
            vUsername = pUsername;
            vPassword = pPassword;

            try {
                if (FindDuplicateEmail())
                {
                    return(new Result {
                        Status = ResultStatus.DuplicateEmail
                    });
                }

                return(ExecuteSession());
            }
            catch (FabDuplicateFault) {
                return(new Result {
                    Status = ResultStatus.DuplicateUsername
                });
            }
            catch (Exception e) {
                Log.Error("Unexpected error", e);

                return(new Result {
                    Status = ResultStatus.UnexpectedError
                });
            }
        }
 ////////////////////////////////////////////////////////////////////////////////////////////////
 /*--------------------------------------------------------------------------------------------*/
 public static void MemberAfterSessionStart(CreateOperationTasks pTasks,
                                            ICreateOperationBuilder pBuild, Member pNewDom, CreateFabMember pNewCre)
 {
     pTasks.FindDuplicateMember(pBuild, pNewCre.DefinedByUserId, pNewCre.DefinedByAppId);
 }
示例#9
0
 ////////////////////////////////////////////////////////////////////////////////////////////////
 /*--------------------------------------------------------------------------------------------*/
 public virtual TDom Execute(IOperationContext pOpCtx, ICreateOperationBuilder pBuild,
                             CreateOperationTasks pTasks, string pJson)
 {
     return(Execute(pOpCtx, pBuild, pTasks, JsonSerializer.DeserializeFromString <TCre>(pJson)));
 }