UI has also become distorted for my existing components which I had developed on previous framework.
Yes, I tried but it’s not working. I have to explicitly set TestLevel and CodeType to 0 also from UI.
I have to explicitly pass the value for TestLevel and CodeType as 0 from UI now. But this functionality was working fine before the upgrade to core 2.0 (I was not passing default value for any parameter). So I have to make this change in all UI pages according to APIs. But I think this is not the way. Can I do something without making so many changes in throughout my application?
Why have these fields become Required now? Even in Swagger UI, it was not required before for fields.
Can I disable this feature?
ClassificationLevel and CodeType are TestLevel ans TestCode. I just replaced Classification by Test to show you code.
DTO:
using Abp.Runtime.Validation;
using MyCompany.MyProject.Dto;
namespace MyCompany.MyProject.Business.Dto.Tests
{
public class FetchTestInput: PagedAndSortedInputDto, IShouldNormalize
{
public int TestLevel { get; set; }
public int CodeType { get; set; }
public string TestCode { get; set; }
public string DescLong { get; set; }
public string LanguageCode { get; set; }
public string TestParent { get; set; }
public int? TestCondID { get; set; }
public int? TestResultId { get; set; }
public void Normalize()
{
if (string.IsNullOrEmpty(Sorting))
{
Sorting = "TestCode";
}
}
}
}
API method:
public PagedResultDto<FetchTest> GetSearchTest(FetchTestInput searchInput)
{
return _TestRepository.GetSearchTest(searchInput);
}
Entity:
using Abp.Domain.Entities.Auditing;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace MyCompany.MyProject.Business.Model.Tests
{
[Table("Test")]
public class Test : FullAuditedEntity
{
public const int NVarcharLength3 = 3;
public const int NVarcharLength40 = 40;
public const int NVarcharLength250 = 250;
[Required]
[MaxLength(NVarcharLength250)]
public string TestCode { get; set; }
[Required]
public int TestLevel { get; set; } = 0;
[MaxLength(NVarcharLength250)]
public string TestParent { get; set; }
[Required]
public int CodeType { get; set; } = 0;
[MaxLength(NVarcharLength3)]
public string CurrencyCode { get; set; }
[Required]
[MaxLength(NVarcharLength40)]
public string DescLong { get; set; }
[Required]
[MaxLength(NVarcharLength40)]
public string DescShort { get; set; }
[Required]
public bool FlgAllow1 { get; set; } = true;
[Required]
public bool FlgAllow2 { get; set; } = false;
[Required]
public bool FlgAllow3 { get; set; } = false;
[Required]
public bool FlgAllow4 { get; set; } = true;
[Required]
public bool FlgAllow5 { get; set; } = true;
[Required]
public bool FlgFood6 { get; set; } = true;
[Required]
public bool Flg7 { get; set; } = true;
[Required]
public bool Flg8 { get; set; } = false;
[Required]
public decimal MaxPrice { get; set; } = 0;
[Required]
public int TestMemberId { get; set; } = 0;
[Required]
public decimal MinPrice { get; set; } = 0;
public int? TestDiscountId { get; set; }
public int? TestDataCode { get; set; }
}
}
Please find the attached screenshot for your reference.
But APIs are getting random required fields which I have not even mentioned in DTO. due to this most of the APIs call are getting failed.
Thanks
Solved issue buddy.
Thanks
@aaron any updates?
@aaron
ABP version : 3.2.5
I have checked, I have v5.0.4 version.
Thanks
@aaron
Please help buddy