Esempio n. 1
0
 private string GetSecurityAttribute(OperationModel o)
 {
     if (o.HasStereotype("Secured") || Model.HasStereotype("Secured"))
     {
         var roles = o.GetStereotypeProperty <string>("Secured", "Roles");
         return(string.IsNullOrWhiteSpace(roles)
             ? "[Authorize]"
             : $"[Authorize(Roles = \"{roles}\")]");
     }
     return("[AllowAnonymous]");
 }
Esempio n. 2
0
        private static HttpVerb GetHttpVerb(OperationModel operation)
        {
            var verb = operation.GetStereotypeProperty("Http", "Verb", "AUTO").ToUpper();

            if (verb != "AUTO")
            {
                return(Enum.TryParse(verb, out HttpVerb verbEnum) ? verbEnum : HttpVerb.POST);
            }

            if (operation.ReturnType == null || operation.Parameters.Any(IsFromBody))
            {
                return(HttpVerb.POST);
            }

            return(HttpVerb.GET);
        }
        public override string AfterCallToAppLayer(ServiceModel service, OperationModel operation)
        {
            if (!operation.GetStereotypeProperty <bool>("Transactional Settings", "Explicit Scope", true))
            {
                return(string.Empty);
            }

            var sb = new StringBuilder();

            sb.AppendIndentation(4)
            .AppendLine("ts.Complete();")
            .AppendIndentation(3)
            .AppendLine("}");

            return(sb.ToString());
        }
        public override string BeforeCallToAppLayer(ServiceModel service, OperationModel operation)
        {
            if (!operation.GetStereotypeProperty <bool>("Transactional Settings", "Explicit Scope", true))
            {
                return(string.Empty);
            }

            var sb = new StringBuilder();

            sb.AppendIndentation(3)
            .AppendLine("var tso = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted };");

            sb.AppendIndentation(3)
            .AppendLine($"using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, tso{(operation.IsAsync() ? ", TransactionScopeAsyncFlowOption.Enabled" : string.Empty)}))")
            .AppendIndentation(3)
            .AppendLine("{");

            return(sb.ToString());
        }
Esempio n. 5
0
        private static bool RequiresPayloadObject(OperationModel operation)
        {
            if (!operation.Parameters.Any())
            {
                return(false);
            }

            if (operation.GetStereotypeProperty("Http", "Payload", "AUTO") == "Payload Object")
            {
                return(true);
            }

            var verb = GetHttpVerb(operation);

            if (verb != HttpVerb.POST && verb != HttpVerb.PUT)
            {
                return(false);
            }

            return(operation.Parameters.Count(IsFromBody) > 1);
        }