Reputation: 11
You can see my PermissionUpdateDTO class below. My 'PermissionUpdateVM' class also has the same properties as these classes. PermissionStatus' and 'PermissionType' in this class are enums.
public class PermissionUpdateDTO
{
public int Id { get; set; }
public int TotalLeaveDuration { get; set; }
public DateTime StartDateOfLeave { get; set; }
public DateTime EndDateOfLeave { get; set; }
public DateTime RequestDateOfLeave = DateTime.Now;
public DateTime DateOfLeaveApproval { get; set; }
public PermissionStatus Status { get; set; }
public PermissionType Type { get; set; }
}
The Update method I have written in my PermissionService class, which inherits from my IPermissionService class to update these properties, is as follows:
public ResultService<PermissionUpdateDTO> UpdateAsync(PermissionUpdateVM permissionUpdateVM)
{
ResultService<PermissionUpdateDTO> result = new ResultService<PermissionUpdateDTO>();
Permission existingPermission = _permissionRepo.GetFirstOrDefault(filter: x => x.Id == permissionUpdateVM.Id);
if(existingPermission == null)
{
result.AddError(ErrorType.NotFound, "Kullanıcı Bulunamadı");
return result;
}
existingPermission.TotalLeaveDuration = permissionUpdateVM.TotalLeaveDuration;
existingPermission.StartDateOfLeave = permissionUpdateVM.StartDateOfLeave;
existingPermission.EndDateOfLeave = permissionUpdateVM.EndDateOfLeave;
existingPermission.RequestDateOfLeave= permissionUpdateVM.RequestDateOfLeave;
existingPermission.DateOfLeaveApproval = permissionUpdateVM.DateOfLeaveApproval;
if (Enum.IsDefined(typeof(PermissionStatus), permissionUpdateVM.Status))
{
existingPermission.Status = (PermissionStatus)permissionUpdateVM.Status;
}
else
{
result.AddError(ErrorType.InvalidData, "Geçersiz PermissionStatus değeri");
return result;
}
if (Enum.IsDefined(typeof(PermissionType), permissionUpdateVM.Type))
{
existingPermission.Type = (PermissionType)permissionUpdateVM.Type;
}
else
{
result.AddError(ErrorType.InvalidData, "Geçersiz PermissionType değeri");
return result;
}
_permissionRepo.Update(existingPermission);
return result;
}
The 'Status' part in 'existingPermission.Status = (PermissionStatus)permissionUpdateVM.Status;' and the 'Type' part in 'existingPermission.Type = (PermissionType)permissionUpdateVM.Type;' are giving the error 'Permission' does not contain a definition for 'Type' and no accessible extension method... How can I fix this?
I also want to mention that I attempted to make the method Task-based. However, when I converted the method to Task, I encountered an error in the 'return result;' part. That's why I did it this way.
Upvotes: 0
Views: 27