//public static IEnumerable<Type> MakePipelineTypes(
        //    this RequestTypeInfo info,
        //    Type openPipelineType
        //)
        //    => info
        //        .Select(rti => rti.MakePipelineTypes(openPipelineType));

        public static Type MakePipelineTypes(
            this RequestTypeInfo info,
            Type openPipelineType
            )
        => openPipelineType
        .MakeGenericType(
            info.RequestType,
            info.ResponseType
            );
예제 #2
0
        public static string[] Save(string info)
        {
            try
            {
                var values = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <Dictionary <string, object> >(info);

                var Title  = values["Title"].ToString();
                var Levels = values["RequestDetail"] as ArrayList;
                var ID     = values["ID"].ToLong();

                for (int i = 0; i < Levels.Count - 1; i++)
                {
                    if (Levels[i] == Levels[i + 1])
                    {
                        throw new Exception(Resources.Texts.SameLevelIsSelected);
                    }
                }

                var RequestTypeInfo = Business.FacadeAutomation.GetRequestTypesBusiness().GetByID(ID);

                if (RequestTypeInfo == null)
                {
                    RequestTypeInfo = new Data.Models.Generated.Automation.RequestType();
                }

                RequestTypeInfo.Title = Title;

                if (Business.FacadeAutomation.GetRequestTypesBusiness().IsDuplicated(RequestTypeInfo))
                {
                    throw new Exception(Resources.Texts.DuplicatedTitle);
                }

                RequestTypeInfo.Save();

                #region RequestTypeDetail

                Business.FacadeAutomation.GetSPBusiness().SP_DeleteOldTypeDetails(RequestTypeInfo.ID);

                List <long> LevelIDs = new List <long>();

                for (int i = 0; i < Levels.Count; i++)
                {
                    var LevelInfo = Business.FacadeAutomation.GetLevelsBusiness().GetByTitle(Levels[i].ToString());
                    if (LevelInfo != null)
                    {
                        LevelIDs.Add(LevelInfo.ID);
                    }
                }

                for (int i = 0; i < LevelIDs.Count; i++)
                {
                    var RequestDetails = new Data.Models.Generated.Automation.RequestTypeDetail();
                    RequestDetails.RequestTypeID = RequestTypeInfo.ID;
                    RequestDetails.LevelID       = LevelIDs[i];
                    RequestDetails.Priority      = i;
                    RequestDetails.Save();
                }

                #endregion

                return(new string[2] {
                    "1", Resources.Texts.Success
                });
            }
            catch (Exception ex)
            {
                return(new string[2] {
                    "0", ex.Message
                });
            }
        }