Beispiel #1
0
        private static List <FieldModel> ComputedList(FormLayoutDetails formLayoutDetails)
        {
            var nameList = new List <FieldModel> ();

            if (formLayoutDetails != null)
            {
                if (formLayoutDetails.Fields != null && formLayoutDetails.Fields.Any())
                {
                    GetComputedChild(formLayoutDetails.Fields, nameList);
                }
                if (formLayoutDetails.Tabs != null && formLayoutDetails.Tabs.Any())
                {
                    GetComputedChild(formLayoutDetails.Tabs, nameList);
                }
            }
            return(nameList);
        }
Beispiel #2
0
        private static List <string> FormList(FormLayoutDetails formLayoutDetails)
        {
            var nameList = new List <string> ();

            if (formLayoutDetails != null)
            {
                nameList.Add(formLayoutDetails.Name);
                if (formLayoutDetails.Fields != null && formLayoutDetails.Fields.Any())
                {
                    GetChild(formLayoutDetails.Fields, nameList);
                }
                if (formLayoutDetails.Tabs != null && formLayoutDetails.Tabs.Any())
                {
                    GetChild(formLayoutDetails.Tabs, nameList);
                }
            }
            return(nameList);
        }
        public void Execute(Guid rootTenantId, Guid initilizedTenantCode)
        {
            var layouts = _review.GetAllEntityAndPickListFormLayoutsByTenantId(initilizedTenantCode);

            var updatedList = new List <LayoutModel>();

            if (layouts.Any())
            {
                foreach (var item in layouts)
                {
                    //every results should be form layout.
                    var formDetails = JsonConvert.DeserializeObject <FormLayoutDetails>(item.Layout);
                    if (formDetails != null && formDetails.Fields != null && formDetails.Fields.Any())
                    {
                        FormLayoutDetails cloneForm = formDetails;
                        if (cloneForm.Fields.Any())
                        {
                            UpdateDefaultValue(cloneForm.Fields, rootTenantId, initilizedTenantCode, item.TypeId);
                            item.FormLayoutDetails = cloneForm;
                            updatedList.Add(item);
                        }
                    }
                }
            }

            // foreach (var list in updatedList) {
            //     ILayoutManager _iLayoutManager = new LayoutManager ();
            //     _iLayoutManager.UpdateLayoutDetails (initilizedTenantCode, list.Id, list);
            // }

            if (!updatedList.Any())
            {
                return;
            }
            ILayoutManager _iLayoutManager = new LayoutManager();

            _iLayoutManager.UpdateLayoutDetailsXml(initilizedTenantCode, updatedList);
        }
Beispiel #4
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            //_log.Info("Called ValidateJsonObjData GetEntityDetails with entityName {0}=", entityName);
            _log.Info("Called ValidateJsonObjData Action filter");

            var    baseApiController  = ((BaseApiController)context.Controller);
            Guid   tenentId           = Guid.Empty;
            bool   IsduplicateRecords = false;
            string methodType         = context.HttpContext.Request.Method;

            if (baseApiController != null)
            {
                tenentId = new Guid(Convert.ToString(baseApiController.TenantCode));
            }

            if (tenentId == Guid.Empty)
            {
                context.ModelState.AddModelError("Parameter", "Bad request!");
                context.Result = baseApiController.StatusCode(520, "Bad request!");
                return;
            }

            try
            {
                context.ActionArguments.TryGetValue("value", out object jobjectvalue);
                context.ActionArguments.TryGetValue("entityName", out object entityName);
                context.ActionArguments.TryGetValue("subType", out object subType);


                if (jobjectvalue == null || string.IsNullOrEmpty(Convert.ToString(entityName)) || string.IsNullOrEmpty(Convert.ToString(subType)))
                {
                    //throw new Exception("Bad request!");
                    context.ModelState.AddModelError("Parameter", "Bad request!");
                    context.Result = baseApiController.StatusCode(520, "Bad request!");
                    return;
                }
                //------------
                JObject payload       = JObject.FromObject(jobjectvalue);
                var     filterPayload = payload.Children().FirstOrDefault(t => t.Path.ToLower().Equals(entityName.ToString().ToLower()));
                var     targetObj     = filterPayload.First().ToObject <JObject> ();
                //-------------
                var objsondict = JsonConvert.DeserializeObject <Dictionary <string, object> >(targetObj.ToString());
                if (objsondict == null || objsondict.Count == 0)
                {
                    context.ModelState.AddModelError("ValidateJsonObjData", string.Format("Jobject value is null in Validation Attributes filter!"));
                    context.Result = baseApiController.StatusCode(520, "Empty data is not acceptable.");
                    return;
                }
                #region Duplicate Recods

                if (methodType.ToUpper().Equals("POST"))
                {
                    IsduplicateRecords = _IduplicateRecordsManager.CheckDuplicatesData(tenentId, Convert.ToString(entityName), payload, Guid.Empty);
                }
                if (methodType.ToUpper().Equals("PUT"))
                {
                    context.ActionArguments.TryGetValue("id", out object UpdateId);
                    IsduplicateRecords = _IduplicateRecordsManager.CheckDuplicatesData(tenentId, Convert.ToString(entityName), payload, (Guid)UpdateId);
                }

                #endregion

                #region EntityFields Validation
                string errors1 = string.Empty;
                string errors2 = string.Empty;

                Entity objentity = _iMetadataManager.GetEntitityByNameExceptsomeFields(Convert.ToString(entityName), false);
                objentity.Fields = objentity.Fields.Where(w => w.ControlType.ToLower() != "label" && w.AccessibleLayoutTypes != null && w.AccessibleLayoutTypes.Contains((int)LayoutType.Form)).ToList();

                if (objentity.Fields != null && objentity.Fields.Count > 0)
                {
                    errors1 = Fieldsloops(objentity.Fields, objsondict, ref context, ref baseApiController);
                }

                //foreach (var field in objentity.Fields)
                //{
                //    errors1 = string.Empty;
                //    errors2 = string.Empty;
                //    // checking Jobject with Entity object to validate Required field

                //    errors1 = _IValidationService.Requiredfieldandvaluecheck(field, objsondict, ref context);

                //    //End Required field Validation

                //    //Field's dataType and its value format check
                //    errors2 = _IValidationService.FieldsdataTypevaluecheck(field, objsondict, ref context);

                //    //End

                //    if (!context.ModelState.IsValid)
                //    {

                //        context.Result = baseApiController.StatusCode(520, (errors1 + "," + errors2).Replace(",", Environment.NewLine));
                //        return;

                //    }
                //}

                //Activity Entityfield validation
                //need to fix this portion
                if (objentity != null && objentity.ActivityEntity != null && objentity.ActivityEntity.Fields != null && objentity.ActivityEntity.Fields.Count > 0 && !methodType.ToUpper().Equals("PUT"))
                {
                    //var activityfields = (!methodType.ToUpper().Equals("PUT")) ? objentity.ActivityEntity.Fields.Where(w => w.ControlType.ToLower() != "label").ToList()
                    //                                                            : objentity.ActivityEntity.Fields.Where(w => w.ControlType.ToLower() != "label" && w.AccessibleLayoutTypes != null && w.AccessibleLayoutTypes.Contains((int)LayoutType.Form)).ToList();
                    var activityfields = objentity.ActivityEntity.Fields.Where(w => w.ControlType.ToLower() != "label" && w.AccessibleLayoutTypes != null && w.AccessibleLayoutTypes.Contains((int)LayoutType.Form)).ToList();
                    errors2 = Fieldsloops(activityfields, objsondict, ref context, ref baseApiController);
                }
                if (!context.ModelState.IsValid)
                {
                    context.Result = baseApiController.StatusCode(520, (errors1 + "," + errors2).Replace(",", Environment.NewLine));
                    return;
                }
                #endregion

                #region Layoutfields Validation

                FormLayoutDetails LayoutField = null;

                if (methodType.ToUpper().Equals("POST"))
                {
                    LayoutField = _iILayoutManager.GetDefaultLayoutForEntity(tenentId, Convert.ToString(entityName), 2, Convert.ToString(subType), 1)?.FormLayoutDetails;
                }
                if (methodType.ToUpper().Equals("PUT"))
                {
                    LayoutField = _iILayoutManager.GetDefaultLayoutForEntity(tenentId, Convert.ToString(entityName), 2, Convert.ToString(subType), 2)?.FormLayoutDetails;
                }

                errors1 = string.Empty;
                errors2 = string.Empty;

                if (LayoutField != null)
                {
                    errors1 = _IValidationService.Requiredfieldandvaluecheck(LayoutField, objsondict, ref context);

                    //End Required field Validation

                    //Field's dataType and its value format check
                    errors2 = _IValidationService.FieldsdataTypevaluecheck(LayoutField, objsondict, ref context);

                    //End
                }
                if (!context.ModelState.IsValid)
                {
                    context.Result = baseApiController.StatusCode(520, (errors1 + "," + errors2).Replace(",", Environment.NewLine));
                    return;
                }
                #endregion
            }
            catch (Exception ex)
            {
                _log.Info("Exception in the ValidateJsonObjData Action filter= {0}", ex.Message);
                //throw new Exception(string.Format("Exception due to {0}", ex.Message));
                context.ModelState.AddModelError("Parameter", "The request body cannot be null");
                context.Result = baseApiController.StatusCode(520, ex.Message);
            }

            // context.ModelState.AddModelError("Parameter", "The request body cannot be null");
            // context.Response = context.Request.CreateErrorResponse(HttpStatusCode.BadRequest, context.ModelState);

            // if (context.ActionArguments.TryGetValue("entityName", out object value)&&context.ActionArguments.TryGetValue("value", out object value))
            // {
            //     // NOTE: this assumes all your controllers derive from Controller.
            //     // If they don't, you'll need to set the value in OnActionExecuted instead
            //     // or use an IAsyncActionFilter
            //     // if (context.Controller is Controller controller)
            //     // {
            //     //     controller.ViewData["ReturnUrl"] = value.ToString();
            //     // }
            // }
        }
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            _log.Info("Called ValidateJsonObjData Action filter");

            var  baseApiController = ((BaseApiController)context.Controller);
            Guid tenentId          = Guid.Empty;

            if (baseApiController != null)
            {
                tenentId = new Guid(Convert.ToString(baseApiController.TenantCode));
            }

            if (tenentId == Guid.Empty)
            {
                context.ModelState.AddModelError("Parameter", "Bad request!");
                context.Result = baseApiController.StatusCode(520, "Bad request!");
                return;
            }

            try
            {
                context.ActionArguments.TryGetValue("value", out object jobjectvalue);
                context.ActionArguments.TryGetValue("name", out object picklistName);


                if (jobjectvalue == null || string.IsNullOrEmpty(Convert.ToString(picklistName)))
                {
                    //throw new Exception("Bad request!");
                    context.ModelState.AddModelError("Parameter", "Bad request!");
                    context.Result = baseApiController.StatusCode(520, "Bad request!");
                    return;
                }

                var objsondict = JsonConvert.DeserializeObject <Dictionary <string, object> >(jobjectvalue.ToString());
                if (objsondict == null || objsondict.Count == 0)
                {
                    context.ModelState.AddModelError("ValidateJsonObjData", string.Format("Null value is not acceptable."));
                    context.Result = baseApiController.StatusCode(520, "Empty data is not acceptable.");
                    return;
                }

                string errors1 = string.Empty;
                string errors2 = string.Empty;

                Entity objentity = _iMetadataManager.GetEntitityByNameExceptsomeFields(Convert.ToString(picklistName), false);
                objentity.Fields = objentity.Fields.Where(w => w.ControlType.ToLower() != "label" && !SkipFields.Contains(w.Name) && w.AccessibleLayoutTypes != null && w.AccessibleLayoutTypes.Contains((int)LayoutType.Form)).ToList();
                foreach (var field in objentity.Fields)
                {
                    // checking Jobject with Entity object to validate Required field
                    errors1 = string.Empty;
                    errors2 = string.Empty;

                    errors1 = _IValidationService.Requiredfieldandvaluecheck(field, objsondict, ref context);

                    //End Required field Validation

                    //Field's dataType and its value format check
                    errors2 = _IValidationService.FieldsdataTypevaluecheck(field, objsondict, ref context);

                    //End

                    if (!context.ModelState.IsValid)
                    {
                        context.Result = baseApiController.StatusCode(520, (errors1 + "," + errors2).Replace(",", Environment.NewLine));
                        return;
                    }
                }

                #region Layoutfields Validation

                FormLayoutDetails LayoutField = null;
                string            methodType  = context.HttpContext.Request.Method;

                if (methodType.ToUpper().Equals("POST"))
                {
                    LayoutField = _iILayoutManager.GetDefaultPicklistLayout(tenentId, Convert.ToString(picklistName), LayoutType.Form, 1)?.FormLayoutDetails;
                }
                if (methodType.ToUpper().Equals("PUT"))
                {
                    LayoutField = _iILayoutManager.GetDefaultPicklistLayout(tenentId, Convert.ToString(picklistName), LayoutType.Form, 2)?.FormLayoutDetails;
                }

                errors1 = string.Empty;
                errors2 = string.Empty;

                if (LayoutField != null)
                {
                    errors1 = _IValidationService.Requiredfieldandvaluecheck(LayoutField, objsondict, ref context);

                    //End Required field Validation

                    //Field's dataType and its value format check
                    errors2 = _IValidationService.FieldsdataTypevaluecheck(LayoutField, objsondict, ref context);

                    //End
                }
                if (!context.ModelState.IsValid)
                {
                    context.Result = baseApiController.StatusCode(520, (errors1 + "," + errors2).Replace(",", Environment.NewLine));
                    return;
                }

                #endregion
            }
            catch (Exception ex)
            {
                _log.Info("Exception in the ValidateJsonObjData Action filter= {0}", ex.Message);
                //throw new Exception(string.Format("Exception due to {0}", ex.Message));
                context.ModelState.AddModelError("Parameter", "The request body cannot be null");
                context.Result = baseApiController.StatusCode(520, ex.Message);
            }
        }