init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
BIN
Kreta.WebApi/Naplo/Kreta.Naplo.Domain/V3/.DS_Store
vendored
Normal file
BIN
Kreta.WebApi/Naplo/Kreta.Naplo.Domain/V3/.DS_Store
vendored
Normal file
Binary file not shown.
|
@ -0,0 +1,86 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Adatszotar
|
||||
{
|
||||
[Serializable]
|
||||
public class Adatszotar<T> where T : System.Enum
|
||||
{
|
||||
private string _leiras;
|
||||
|
||||
public Adatszotar(int id)
|
||||
{
|
||||
Uid = new AdatszotarUid(id, GetEnumName(id));
|
||||
}
|
||||
|
||||
public Adatszotar(int id, string leiras)
|
||||
{
|
||||
Uid = new AdatszotarUid(id, GetEnumName(id));
|
||||
Leiras = leiras;
|
||||
}
|
||||
|
||||
public Adatszotar(string leiras)
|
||||
{
|
||||
Uid = new AdatszotarUid(0, GetEnumName(0));
|
||||
Leiras = leiras;
|
||||
}
|
||||
|
||||
public Adatszotar(string nev, string leiras)
|
||||
{
|
||||
Uid = new AdatszotarUid(0, nev);
|
||||
Leiras = leiras;
|
||||
}
|
||||
|
||||
public string EnumTypeFullName => typeof(T).Name;
|
||||
|
||||
public string EnumTypeName => EnumTypeFullName.Replace("Enum", string.Empty).Replace("enum", string.Empty);
|
||||
|
||||
public static bool IsAdatszotarElem(int id) => id >= Constant.EgyedilegFelvettAdatSzotarElemStartIndex && string.IsNullOrWhiteSpace(System.Enum.GetName(typeof(T), id));
|
||||
|
||||
public string Leiras { get => _leiras ?? GetDisplayNameAttribute(); private set => _leiras = value; }
|
||||
|
||||
public AdatszotarUid Uid { get; private set; }
|
||||
|
||||
private string GetEnumName(int id) => id == 0 ? $"{typeof(T)}_{nameof(Enum.Adatszotar.IsmeretlenErtek)}"
|
||||
: IsAdatszotarElem(id) ? nameof(Enum.Adatszotar.AdatszotarElem)
|
||||
: System.Enum.GetName(typeof(T), id);
|
||||
|
||||
public override bool Equals(object obj) => obj is Adatszotar<T> @enum && Uid.Id == @enum.Uid.Id;
|
||||
|
||||
public T GetEnum() => (T)System.Enum.Parse(typeof(T), Uid.Nev);
|
||||
|
||||
public override int GetHashCode() => 2_108_858_624 + Uid.Id.GetHashCode();
|
||||
|
||||
private string GetDisplayNameAttribute()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(Uid.Nev))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var fieldInfo = typeof(T).GetField(Uid.Nev);
|
||||
|
||||
if (fieldInfo != null)
|
||||
{
|
||||
var attributes = (DisplayAttribute)fieldInfo.GetCustomAttributes(typeof(DisplayAttribute), false).FirstOrDefault();
|
||||
|
||||
if (attributes != null)
|
||||
{
|
||||
return attributes.GetName();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static implicit operator Adatszotar<T>(int id) => new Adatszotar<T>(id);
|
||||
|
||||
public static implicit operator Adatszotar<T>(T enumValue) => new Adatszotar<T>(Convert.ToInt32(enumValue));
|
||||
|
||||
public static bool operator !=(Adatszotar<T> lhsWrapper, T rhsEnum) => IsAdatszotarElem(lhsWrapper.Uid.Id) || !lhsWrapper.GetEnum().Equals(rhsEnum);
|
||||
|
||||
public static bool operator ==(Adatszotar<T> lhsWrapper, T rhsEnum) => !IsAdatszotarElem(lhsWrapper.Uid.Id) && lhsWrapper.GetEnum().Equals(rhsEnum);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Common
|
||||
{
|
||||
public class ApiSecurity
|
||||
{
|
||||
public ApiSecurity(string accessTokenRaw, string securityKey)
|
||||
{
|
||||
AccessTokenRaw = accessTokenRaw;
|
||||
SecurityKey = securityKey;
|
||||
Signature = AccessTokenRaw.Split('.')[2];
|
||||
}
|
||||
|
||||
public string AccessTokenRaw { get; private set; }
|
||||
public string SecurityKey { get; private set; }
|
||||
public string Signature { get; private set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.DataAccessManual.Interfaces;
|
||||
using Kreta.Naplo.Dao.V3.Naplo;
|
||||
using Kreta.Naplo.Domain.V3.Enum;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Common
|
||||
{
|
||||
public class DefaultConnectionParameters
|
||||
{
|
||||
public string IntezmenyAzonosito { get; }
|
||||
|
||||
public int IntezmenyId { get; }
|
||||
|
||||
public int TanevId { get; }
|
||||
|
||||
public int TanevSorszam { get; }
|
||||
|
||||
public int FelhasznaloId { get; }
|
||||
|
||||
public IEnumerable<FelhasznaloSzerepkor> JogosultsagLista { get; }
|
||||
|
||||
public IDalHandler DalHandler { get; set; }
|
||||
|
||||
public string UserName { get; }
|
||||
|
||||
public Guid UserIdpUniqueId { get; }
|
||||
|
||||
public Guid InstituteUniqueId { get; }
|
||||
|
||||
public DefaultConnectionParameters(MobileUser mobileUser, IntezmenyAdatokDao intezmenyAdatok, string intezmenyAzonosito)
|
||||
{
|
||||
IntezmenyAzonosito = intezmenyAzonosito;
|
||||
FelhasznaloId = mobileUser.UserId;
|
||||
JogosultsagLista = mobileUser.Roles;
|
||||
UserName = mobileUser.UserName;
|
||||
UserIdpUniqueId = mobileUser.UserIdpUniqueId;
|
||||
TanevId = intezmenyAdatok.TanevId;
|
||||
TanevSorszam = intezmenyAdatok.TanevSorszam;
|
||||
IntezmenyId = intezmenyAdatok.IntezmenyId;
|
||||
InstituteUniqueId = mobileUser.InstituteUniqueId;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.Naplo.Domain.V3.Enum;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Common
|
||||
{
|
||||
public class MobileUser
|
||||
{
|
||||
private const int MinimumIdentifierValue = 1;
|
||||
|
||||
public MobileUser(string instituteCode, int userId, string userName, IEnumerable<FelhasznaloSzerepkor> roles, int schoolYearId, Guid userIdpUniqueId, Guid instituteUniqueId)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(instituteCode))
|
||||
{
|
||||
throw new ArgumentException($"{nameof(instituteCode)} cannot be null or whitespace");
|
||||
}
|
||||
|
||||
InstituteCode = instituteCode;
|
||||
|
||||
if (userId < MinimumIdentifierValue)
|
||||
{
|
||||
throw new ArgumentException($"{nameof(userId)} must be greater or equal to {MinimumIdentifierValue}");
|
||||
}
|
||||
|
||||
UserId = userId;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(userName))
|
||||
{
|
||||
throw new ArgumentException($"{nameof(userName)} cannot be null or whitespace");
|
||||
}
|
||||
|
||||
UserName = userName;
|
||||
|
||||
if (roles == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(roles));
|
||||
}
|
||||
|
||||
Roles = roles;
|
||||
|
||||
if (schoolYearId < MinimumIdentifierValue)
|
||||
{
|
||||
throw new ArgumentException($"{nameof(schoolYearId)} must be greater or equal to {MinimumIdentifierValue}");
|
||||
}
|
||||
|
||||
SchoolYearId = schoolYearId;
|
||||
|
||||
UserIdpUniqueId = userIdpUniqueId;
|
||||
|
||||
InstituteUniqueId = instituteUniqueId;
|
||||
}
|
||||
|
||||
public string InstituteCode { get; }
|
||||
|
||||
public int SchoolYearId { get; }
|
||||
|
||||
public IEnumerable<FelhasznaloSzerepkor> Roles { get; }
|
||||
|
||||
public int UserId { get; }
|
||||
|
||||
public string UserName { get; }
|
||||
|
||||
public Guid UserIdpUniqueId { get; }
|
||||
|
||||
public Guid InstituteUniqueId { get; }
|
||||
}
|
||||
}
|
15
Kreta.WebApi/Naplo/Kreta.Naplo.Domain/V3/Constant.cs
Normal file
15
Kreta.WebApi/Naplo/Kreta.Naplo.Domain/V3/Constant.cs
Normal file
|
@ -0,0 +1,15 @@
|
|||
namespace Kreta.Naplo.Domain.V3
|
||||
{
|
||||
public static class Constant
|
||||
{
|
||||
public static readonly char UidInnerDelimiter = ',';
|
||||
|
||||
public static readonly string UidNullValue = "null";
|
||||
|
||||
public static readonly string UidNanValue = "HibasUid";
|
||||
|
||||
public static readonly char UidDelimiter = ';';
|
||||
|
||||
public static readonly int EgyedilegFelvettAdatSzotarElemStartIndex = 100_000;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.Naplo.Domain.V3.Orarend;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Csatolmany
|
||||
{
|
||||
public class CsatolmanyListRequest
|
||||
{
|
||||
public DateTime DatumTol { get; set; }
|
||||
|
||||
public DateTime DatumIg { get; set; }
|
||||
|
||||
public IEnumerable<OrarendElemSimplified> OrarendElemek { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Csatolmany
|
||||
{
|
||||
public class CsatolmanyResponse : IEqualityComparer<CsatolmanyResponse>
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Nev { get; set; }
|
||||
|
||||
public bool Equals(CsatolmanyResponse x, CsatolmanyResponse y) => x.Id.Equals(y.Id);
|
||||
|
||||
public int GetHashCode(CsatolmanyResponse obj) => obj.Id.GetHashCode();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Enum
|
||||
{
|
||||
public enum Adatszotar
|
||||
{
|
||||
IsmeretlenErtek,
|
||||
AdatszotarElem
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Enum
|
||||
{
|
||||
public class EnumRequest
|
||||
{
|
||||
public string EnumTipus { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Enum
|
||||
{
|
||||
public class EnumResponse
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Nev { get; set; }
|
||||
|
||||
public string Leiras { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Enum
|
||||
{
|
||||
public enum ErtekelesLekeresTipusEnum
|
||||
{
|
||||
[Display(Name = "Nem bizonyítvány típusú értékelések")]
|
||||
NemBizonyitvanyErtekelesTipus,
|
||||
[Display(Name = "Bizonyítvány típusú értékelések")]
|
||||
BizonyitvanyErtekelesTipus,
|
||||
[Display(Name = "Minden értékelés típus")]
|
||||
MindenErtekelesTipus
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Enum
|
||||
{
|
||||
public enum FelhasznaloSzerepkor
|
||||
{
|
||||
Tanar,
|
||||
Adminisztrator
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Enum
|
||||
{
|
||||
public enum MockUserName
|
||||
{
|
||||
None,
|
||||
Farkase
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
using Kreta.Enums;
|
||||
using Kreta.Naplo.Domain.V3.Adatszotar;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Ertekeles
|
||||
{
|
||||
public class ErtekelesRequest
|
||||
{
|
||||
public Adatszotar<OsztalyzatTipusEnum> OsztalyzatTipus { get; set; }
|
||||
|
||||
public string Szazalek { get; set; }
|
||||
|
||||
public string Szoveg { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Ertekeles
|
||||
{
|
||||
public class ErtekelesResponse
|
||||
{
|
||||
public int? OsztalyzatTipus { get; set; }
|
||||
|
||||
public int? Szazalek { get; set; }
|
||||
|
||||
public string Szoveg { get; set; }
|
||||
|
||||
public int TipusId { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
using System;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Ertekeles
|
||||
{
|
||||
public class TanuloMentessegResponse
|
||||
{
|
||||
public bool ErtekelesAloliFelmentes { get; set; }
|
||||
|
||||
public bool TanoraLatogatasaAloliFelmentes { get; set; }
|
||||
|
||||
public bool SzovegesenErtekelheto { get; set; }
|
||||
|
||||
public string FelmentesOka { get; set; }
|
||||
|
||||
public bool IsMaganTanulo { get; set; }
|
||||
|
||||
public bool IsSzakmaiGyakorlatonLevo { get; set; }
|
||||
|
||||
public bool IsJogviszonySzunetelteto { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Kreta.Naplo.Domain.V3.Utility.ValidationAttributes;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Felmentes
|
||||
{
|
||||
public class FelmentesRequest
|
||||
{
|
||||
[Required]
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
[Required]
|
||||
public DateTime Datum { get; set; }
|
||||
|
||||
public int? TanuloId { get; set; }
|
||||
|
||||
public int? TantargyId { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.HaziFeladat
|
||||
{
|
||||
public class HaziFeladatCreateRequest : IValidatableObject, IModelValidacio<HaziFeladatCreateRequest>
|
||||
{
|
||||
public string Szoveg { get; set; }
|
||||
|
||||
public DateTime BeadasiHatarido { get; set; }
|
||||
|
||||
public DateTime OraDatum { get; set; }
|
||||
|
||||
public int? Oraszam { get; set; }
|
||||
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
public Dictionary<Predicate<HaziFeladatCreateRequest>, string> ModelValidaciok => new Dictionary<Predicate<HaziFeladatCreateRequest>, string>
|
||||
{
|
||||
{ x => string.IsNullOrWhiteSpace(x.Szoveg), "Házi feladat szövege nem lehet üres!" },
|
||||
{ x => x.BeadasiHatarido < DateTime.Today.AddDays(1), "Házi feladat nem rögzíthető korábbi határidővel, mint a holnapi!" },
|
||||
{ x => x.BeadasiHatarido < x.OraDatum, "Házi feladat határideje nem lehet korábban, mint az óra dátuma!" }
|
||||
};
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.Naplo.Domain.V3.Csatolmany;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.HaziFeladat
|
||||
{
|
||||
public class HaziFeladatResponse
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Szoveg { get; set; }
|
||||
|
||||
public DateTime? HataridoDatuma { get; set; }
|
||||
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
public string TantargyNev { get; set; }
|
||||
|
||||
public IEnumerable<CsatolmanyResponse> Csatolmanyok { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.HaziFeladat
|
||||
{
|
||||
public class HaziFeladatUpdateRequest : IValidatableObject, IModelValidacio<HaziFeladatUpdateRequest>
|
||||
{
|
||||
public string Szoveg { get; set; }
|
||||
|
||||
public DateTime HataridoDatuma { get; set; }
|
||||
|
||||
public int? CsatolmanyId { get; set; }
|
||||
|
||||
public Dictionary<Predicate<HaziFeladatUpdateRequest>, string> ModelValidaciok => new Dictionary<Predicate<HaziFeladatUpdateRequest>, string>
|
||||
{
|
||||
{ x => string.IsNullOrWhiteSpace(x.Szoveg), "Házi feladata szöveg nem lehet üres!" },
|
||||
{ x => x.HataridoDatuma < DateTime.Today.AddDays(1), "Házi feladat nem rögzíthető korábbi határidővel, mint a holnapi!" }
|
||||
};
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Data.SqlTypes;
|
||||
using System.Linq;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Igazolas
|
||||
{
|
||||
public class IgazolasCreateRequest : IValidatableObject, IModelValidacio<IgazolasCreateRequest>
|
||||
{
|
||||
[Required]
|
||||
public int TanuloId { get; set; }
|
||||
|
||||
[Required]
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
[Required]
|
||||
public DateTime IgazolasKezdete { get; set; }
|
||||
|
||||
[Required]
|
||||
public DateTime IgazolasVege { get; set; }
|
||||
|
||||
[Required]
|
||||
public int IgazolasTipus { get; set; }
|
||||
|
||||
public string IgazolasMegjegyzes { get; set; }
|
||||
|
||||
public Dictionary<Predicate<IgazolasCreateRequest>, string> ModelValidaciok => new Dictionary<Predicate<IgazolasCreateRequest>, string>
|
||||
{
|
||||
{ x => x.IgazolasVege < x.IgazolasKezdete, $"A {nameof(IgazolasKezdete)} és a {nameof(IgazolasVege)} paraméterek meg vannak adva, de a {nameof(IgazolasKezdete)} nagyobb, mint a {nameof(IgazolasVege)} értek!" },
|
||||
{ x => (x.IgazolasVege - x.IgazolasKezdete).Days > 20, $"A {nameof(IgazolasKezdete)} és a {nameof(IgazolasVege)} paraméterek meg vannak adva, de maximum 20 napos intervallum adható meg!" },
|
||||
{ x => x.IgazolasKezdete < (DateTime)SqlDateTime.MinValue || x.IgazolasKezdete > (DateTime)SqlDateTime.MaxValue, $"A {nameof(IgazolasKezdete)} paraméter nem lehet kisebb, mint 1753. január 1. és nagyobb, mint 9999. december 31.!" },
|
||||
{ x => x.IgazolasVege < (DateTime)SqlDateTime.MinValue || x.IgazolasVege > (DateTime)SqlDateTime.MaxValue, $"A {nameof(IgazolasVege)} paraméter nem lehet kisebb, mint 1753. január 1. és nagyobb, mint 9999. december 31.!" },
|
||||
{ x => !System.Enum.IsDefined(typeof(IgazolasTipusEnum), x.IgazolasTipus), "Az igazolás típusa nem megfelelő!" }
|
||||
};
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
using System;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Igazolas
|
||||
{
|
||||
public class IgazolasResponse
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public DateTime Kezdete { get; set; }
|
||||
|
||||
public DateTime Vege { get; set; }
|
||||
|
||||
public int Tipusa { get; set; }
|
||||
|
||||
public string Megjegyzes { get; set; }
|
||||
|
||||
public string Rogzito { get; set; }
|
||||
|
||||
public bool Torolheto { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.Core.Enum;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Indexers
|
||||
{
|
||||
public class UidsCollection<T> : IEnumerable<T> where T : class, IReadonlyUidRaw
|
||||
{
|
||||
private readonly List<T> _uids = new List<T>();
|
||||
|
||||
public UidsCollection(string uidsRaw, Converter<string[], T> uidsConverter)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(uidsRaw))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string[] uidArray = uidsRaw.Split(Constant.UidDelimiter);
|
||||
|
||||
if (uidArray.Length > 50)
|
||||
{
|
||||
throw new BlException(BlExceptionType.ListaTobbMint50ElemetTartalmaz);
|
||||
}
|
||||
|
||||
_uids = new List<T>(uidArray.Length);
|
||||
|
||||
for (int i = 0; i < uidArray.Length; i++)
|
||||
{
|
||||
_uids.Add(GetUid(uidArray[i]));
|
||||
}
|
||||
|
||||
T GetUid(string uidRaw)
|
||||
{
|
||||
string[] compositeKey = uidRaw.Split(Constant.UidInnerDelimiter);
|
||||
|
||||
T uid = uidsConverter.Invoke(compositeKey);
|
||||
return uid;
|
||||
}
|
||||
}
|
||||
|
||||
public T this[int index] => _uids[index];
|
||||
|
||||
public IEnumerator GetEnumerator() => throw new NotImplementedException();
|
||||
|
||||
IEnumerator<T> IEnumerable<T>.GetEnumerator() => _uids.GetEnumerator();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Interfaces
|
||||
{
|
||||
public interface IModelValidacio<T>
|
||||
{
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
|
||||
Dictionary<Predicate<T>, string> ModelValidaciok { get; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Interfaces
|
||||
{
|
||||
public interface IReadonlyUidRaw
|
||||
{
|
||||
string UidRaw { get; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Interfaces
|
||||
{
|
||||
public interface IRequestUidFilter<T> where T : class, IReadonlyUidRaw
|
||||
{
|
||||
T Uid { get; set; }
|
||||
|
||||
bool IsCallerGetOnlyOneItem { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
using Kreta.Naplo.Domain.V3.Indexers;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Interfaces
|
||||
{
|
||||
public interface IRequestUidsFilter<T> where T : class, IReadonlyUidRaw
|
||||
{
|
||||
UidsCollection<T> Uids { get; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Interfaces
|
||||
{
|
||||
public interface ISortable
|
||||
{
|
||||
int SortIndex { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
using System.Collections.Generic;
|
||||
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Intezmeny
|
||||
{
|
||||
public class IntezmenyAdatok : IEqualityComparer<IntezmenyAdatok>
|
||||
{
|
||||
public IntezmenyUid Uid { get; set; }
|
||||
|
||||
public string Azonosito { get; set; }
|
||||
|
||||
public string TeljesNev { get; set; }
|
||||
|
||||
public string RovidNev { get; set; }
|
||||
|
||||
public bool Equals(IntezmenyAdatok x, IntezmenyAdatok y) => x.Uid.Equals(x.Uid, y.Uid);
|
||||
|
||||
public int GetHashCode(IntezmenyAdatok obj) => obj.Uid.UidRaw.GetHashCode();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
using System;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Iskolaor
|
||||
{
|
||||
public class IskolaorResponse
|
||||
{
|
||||
public Guid Uid { get; set; }
|
||||
|
||||
public string Nev { get; set; }
|
||||
|
||||
public int FeladatEllatasiHelyId { get; set; }
|
||||
|
||||
public string FeladatEllatasiHelyNev { get; set; }
|
||||
|
||||
public string EmailCim { get; set; }
|
||||
|
||||
public string Telefonszam { get; set; }
|
||||
}
|
||||
}
|
40
Kreta.WebApi/Naplo/Kreta.Naplo.Domain/V3/Logic/UidLogic.cs
Normal file
40
Kreta.WebApi/Naplo/Kreta.Naplo.Domain/V3/Logic/UidLogic.cs
Normal file
|
@ -0,0 +1,40 @@
|
|||
using System;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Logic
|
||||
{
|
||||
public static class UidLogic
|
||||
{
|
||||
public static T GetUid<T>(string uidRaw, Converter<string[], T> uidConverter) where T : class, IReadonlyUidRaw
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(uidRaw))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
string[] compositeKey = uidRaw.Split(Constant.UidInnerDelimiter);
|
||||
|
||||
T uid = uidConverter.Invoke(compositeKey);
|
||||
return uid;
|
||||
}
|
||||
|
||||
public static string[] GetCompositeKeyElements(string uidRaw) => string.IsNullOrWhiteSpace(uidRaw) ? null : uidRaw.Split(Constant.UidInnerDelimiter);
|
||||
|
||||
public static string Concat(params object[] compositeKeyElements)
|
||||
{
|
||||
for (int i = 0; i < compositeKeyElements.Length; i++)
|
||||
{
|
||||
if (compositeKeyElements[i] == null)
|
||||
{
|
||||
compositeKeyElements[i] = Constant.UidNullValue;
|
||||
}
|
||||
else if (string.IsNullOrWhiteSpace(compositeKeyElements[i].ToString()))
|
||||
{
|
||||
compositeKeyElements[i] = Constant.UidNanValue;
|
||||
}
|
||||
}
|
||||
|
||||
return string.Join(Constant.UidInnerDelimiter.ToString(), compositeKeyElements);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
namespace Kreta.Naplo.Domain.V3.Ora
|
||||
{
|
||||
public class FeljegyzesResponse
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public int Tipus { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Ora
|
||||
{
|
||||
public class OraFeljegyzesRequest
|
||||
{
|
||||
public int TanoraId { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Ora
|
||||
{
|
||||
public class OraFeljegyzesResponse
|
||||
{
|
||||
public int TanuloId { get; set; }
|
||||
|
||||
public List<FeljegyzesResponse> FeljegyzesLista { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Ora
|
||||
{
|
||||
public class TanuloJelenletRequest
|
||||
{
|
||||
public TanuloJelenletRequest(int tanoraId)
|
||||
{
|
||||
TanoraId = tanoraId;
|
||||
}
|
||||
|
||||
[Required]
|
||||
public int TanoraId { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Ora
|
||||
{
|
||||
public class TanuloJelenletResponse
|
||||
{
|
||||
public int TanuloId { get; set; }
|
||||
|
||||
public int MulasztasTipus { get; set; }
|
||||
|
||||
public int? Keses { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
using System;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class FelmentesResponse
|
||||
{
|
||||
public int TanuloId { get; set; }
|
||||
|
||||
public string TantargyNev { get; set; }
|
||||
|
||||
public bool ErtekelesAloliFelmentes { get; set; }
|
||||
|
||||
public bool TanoraLatogatasaAloliFelmentes { get; set; }
|
||||
|
||||
public bool SzovegesenErtekelheto { get; set; }
|
||||
|
||||
public string FelmentesOka { get; set; }
|
||||
|
||||
public DateTime? FelmentesKezdete { get; set; }
|
||||
|
||||
public DateTime? FelmentesVege { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Data.SqlTypes;
|
||||
using System.Linq;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class HetirendListRequest : IValidatableObject, IModelValidacio<HetirendListRequest>
|
||||
{
|
||||
public Dictionary<Predicate<HetirendListRequest>, string> ModelValidaciok => new Dictionary<Predicate<HetirendListRequest>, string>
|
||||
{
|
||||
{
|
||||
x => x.OrarendElemVegNapDatuma < x.OrarendElemKezdoNapDatuma, $"A(z) {nameof(OrarendElemKezdoNapDatuma)} nagyobb, mint a(z) {nameof(OrarendElemVegNapDatuma)} érték!"
|
||||
},
|
||||
{ x => (x.OrarendElemVegNapDatuma - x.OrarendElemKezdoNapDatuma).Days > 21,
|
||||
$"A {nameof(OrarendElemKezdoNapDatuma)} és a {nameof(OrarendElemVegNapDatuma)} paraméterek meg vannak adva, de maximum 3 hetes intervallum kérdezhető le!"
|
||||
},
|
||||
{
|
||||
x => x.OrarendElemKezdoNapDatuma < (DateTime)SqlDateTime.MinValue || x.OrarendElemKezdoNapDatuma > (DateTime)SqlDateTime.MaxValue, $"A {nameof(OrarendElemKezdoNapDatuma)} paraméter nem lehet kisebb, mint 1753. január 1. és nagyobb, mint 9999. december 31.!"
|
||||
},
|
||||
{
|
||||
x => x.OrarendElemVegNapDatuma < (DateTime)SqlDateTime.MinValue || x.OrarendElemVegNapDatuma > (DateTime)SqlDateTime.MaxValue, $"A {nameof(OrarendElemVegNapDatuma)} paraméter nem lehet kisebb, mint 1753. január 1. és nagyobb, mint 9999. december 31.!"
|
||||
}
|
||||
};
|
||||
|
||||
public DateTime OrarendElemKezdoNapDatuma { get; set; }
|
||||
|
||||
public DateTime OrarendElemVegNapDatuma { get; set; }
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
using System;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class HetirendListResponse
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public DateTime KezdoNapDatuma { get; set; }
|
||||
|
||||
public DateTime VegNapDatuma { get; set; }
|
||||
|
||||
public int HetSorszama { get; set; }
|
||||
|
||||
public string Hetirend { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
using Kreta.Enums;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class MulasztasForOraNaplozasRequest
|
||||
{
|
||||
public MulasztasTipusEnum Tipus { get; set; }
|
||||
|
||||
public int? Keses { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,123 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Logic.Naplozas;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class OraNaplozasRequest : IValidatableObject
|
||||
{
|
||||
public OraNaplozasRequest(OrarendElemUid orarendElemUid, string tema, bool isElmaradt, List<TanuloForOraNaplozasListRequest> tanuloLista, string hazifeladat, DateTime? hazifeladatHatarido, int? hazifeladatId)
|
||||
{
|
||||
OrarendElemUid = orarendElemUid;
|
||||
Tema = tema;
|
||||
IsElmaradt = isElmaradt;
|
||||
TanuloLista = tanuloLista;
|
||||
Hazifeladat = hazifeladat;
|
||||
HazifeladatHatarido = hazifeladatHatarido;
|
||||
HazifeladatId = hazifeladatId;
|
||||
|
||||
foreach (var tanulo in TanuloLista)
|
||||
{
|
||||
if (OccurrenceNumberByPrimaryKey.ContainsKey(tanulo.Id))
|
||||
{
|
||||
OccurrenceNumberByPrimaryKey[tanulo.Id]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
OccurrenceNumberByPrimaryKey.Add(tanulo.Id, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public OrarendElemUid OrarendElemUid { get; set; }
|
||||
|
||||
public string Tema { get; set; }
|
||||
|
||||
public bool IsElmaradt { get; set; }
|
||||
|
||||
public List<TanuloForOraNaplozasListRequest> TanuloLista { get; set; }
|
||||
|
||||
public string Hazifeladat { get; set; }
|
||||
|
||||
public DateTime? HazifeladatHatarido { get; set; }
|
||||
|
||||
public int? HazifeladatId { get; set; }
|
||||
|
||||
public Dictionary<int, int> OccurrenceNumberByPrimaryKey = new Dictionary<int, int>();
|
||||
|
||||
public void ConvertTo(NaplozasMobilCo co)
|
||||
{
|
||||
co.OraAdat.Datum = OrarendElemUid.Datum;
|
||||
co.OraAdat.IsElmaradt = IsElmaradt;
|
||||
co.OraAdat.Tema = Tema;
|
||||
co.OraAdat.OrarendiOraId = OrarendElemUid.Tipus == CalendarOraTypeEnum.OrarendiOra ? OrarendElemUid.Id : (int?)null;
|
||||
co.OraAdat.TanitasiOraId = OrarendElemUid.Tipus == CalendarOraTypeEnum.TanitasiOra ? OrarendElemUid.Id : (int?)null;
|
||||
co.Hazifeladat.Id = HazifeladatId;
|
||||
co.Hazifeladat.Szoveg = Hazifeladat;
|
||||
co.Hazifeladat.Hatarido = HazifeladatHatarido;
|
||||
|
||||
foreach (var tanulo in TanuloLista)
|
||||
{
|
||||
var tanuloMulasztas = new NaplozasMobilCo.MulasztasModel
|
||||
{
|
||||
TanuloId = tanulo.Id,
|
||||
MulasztasTipus = (int)tanulo.Mulasztas.Tipus,
|
||||
Keses = tanulo.Mulasztas.Keses
|
||||
};
|
||||
|
||||
foreach (var esemenyTipus in tanulo.FeljegyzesTipusLista)
|
||||
{
|
||||
switch (esemenyTipus)
|
||||
{
|
||||
case (int)EsemenyTipusEnum.HaziFeladatHiany:
|
||||
tanuloMulasztas.HazifeladatHiany = true;
|
||||
break;
|
||||
case (int)EsemenyTipusEnum.Felszereleshiany:
|
||||
tanuloMulasztas.FelszerelesHiany = true;
|
||||
break;
|
||||
case (int)EsemenyTipusEnum.Dicseret:
|
||||
tanuloMulasztas.TanoraiDicseret = true;
|
||||
break;
|
||||
case (int)EsemenyTipusEnum.SzakmaiMentessegNemHivatalos:
|
||||
tanuloMulasztas.Felmentes = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
co.MulasztasList.Add(tanuloMulasztas);
|
||||
}
|
||||
}
|
||||
|
||||
public Dictionary<Predicate<OraNaplozasRequest>, string> ModelValidaciok => new Dictionary<Predicate<OraNaplozasRequest>, string>
|
||||
{
|
||||
{
|
||||
x => x.HazifeladatHatarido < x.OrarendElemUid.Datum.Date.AddDays(1),
|
||||
ErrorResource.HazifeladatNemrogzithetoHataridoKorabbiMintAzOraDatuma
|
||||
},
|
||||
{
|
||||
x => x.HazifeladatHatarido < DateTime.Today.AddDays(1),
|
||||
ErrorResource.HazifeladatNemrogzithetoHataridoKorabbiMintAHolnapiNap
|
||||
},
|
||||
{
|
||||
x => x.HazifeladatId.HasValue && string.IsNullOrWhiteSpace(x.Hazifeladat),
|
||||
OrarendResource.HazifeladatSzovegKotelezo
|
||||
},
|
||||
{
|
||||
x => x.TanuloLista.Any(y => (int)y.Mulasztas.Tipus == (int)MulasztasTipusEnum.keses && y.Mulasztas.Keses <= 0),
|
||||
"A késés értéke nem lehet 0 vagy negatív szám!"
|
||||
},
|
||||
{
|
||||
x => x.OccurrenceNumberByPrimaryKey.Any(y => y.Value > 1),
|
||||
$"A következő tanulók többször szerepelnek: {string.Join(", ", OccurrenceNumberByPrimaryKey.Where(x => x.Value > 1).Select(y => y.Key))}"
|
||||
}
|
||||
};
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Logic.Naplozas;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class OraNaplozasTorlesRequest : IValidatableObject, IModelValidacio<OraNaplozasTorlesRequest>
|
||||
{
|
||||
public OraNaplozasTorlesRequest(string orarendElemUid)
|
||||
{
|
||||
OrarendElemUid = new OrarendElemUid(orarendElemUid);
|
||||
}
|
||||
|
||||
public OraNaplozasTorlesRequest(CalendarOraTypeEnum tipus, int id, DateTime datum)
|
||||
{
|
||||
OrarendElemUid = new OrarendElemUid(id, tipus, datum);
|
||||
}
|
||||
|
||||
public Dictionary<Predicate<OraNaplozasTorlesRequest>, string> ModelValidaciok => new Dictionary<Predicate<OraNaplozasTorlesRequest>, string>
|
||||
{
|
||||
{ x => x.OrarendElemUid != null && x.OrarendElemUid.Tipus != CalendarOraTypeEnum.TanitasiOra, ErrorResource.ATorolniKivantOraNemTanitasiOra }
|
||||
};
|
||||
|
||||
[Required]
|
||||
public OrarendElemUid OrarendElemUid { get; set; }
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
||||
|
||||
public void ConvertTo(NaplozasMobilCo co)
|
||||
{
|
||||
co.OraAdat.Datum = OrarendElemUid.Datum;
|
||||
co.OraAdat.OrarendiOraId = OrarendElemUid.Tipus == CalendarOraTypeEnum.OrarendiOra ? OrarendElemUid.Id : (int?)null;
|
||||
co.OraAdat.TanitasiOraId = OrarendElemUid.Tipus == CalendarOraTypeEnum.TanitasiOra ? OrarendElemUid.Id : (int?)null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class OrarendElemRequest : IValidatableObject, IModelValidacio<OrarendElemRequest>
|
||||
{
|
||||
public OrarendElemRequest(string orarendElemUid)
|
||||
{
|
||||
OrarendElemUid = new OrarendElemUid(orarendElemUid);
|
||||
}
|
||||
|
||||
public OrarendElemRequest(CalendarOraTypeEnum tipus, int id, DateTime datum)
|
||||
{
|
||||
OrarendElemUid = new OrarendElemUid(id, tipus, datum);
|
||||
}
|
||||
|
||||
public Dictionary<Predicate<OrarendElemRequest>, string> ModelValidaciok => new Dictionary<Predicate<OrarendElemRequest>, string>
|
||||
{
|
||||
{ x => x.OrarendElemUid != null
|
||||
&& x.OrarendElemUid.Tipus != CalendarOraTypeEnum.OrarendiOra
|
||||
&& x.OrarendElemUid.Tipus != CalendarOraTypeEnum.TanitasiOra
|
||||
&& x.OrarendElemUid.Tipus != CalendarOraTypeEnum.UresOra
|
||||
, "Csak órarendi, tanítási és elmaradt óra kérhető le!" }
|
||||
};
|
||||
|
||||
[Required]
|
||||
public OrarendElemUid OrarendElemUid { get; set; }
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.Naplo.Domain.V3.Csatolmany;
|
||||
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class OrarendElemResponse
|
||||
{
|
||||
public OrarendElemUid Uid { get; set; }
|
||||
|
||||
public string Nev { get; set; }
|
||||
|
||||
public bool HasOrarendiOra { get; set; }
|
||||
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
public string OsztalyCsoportNev { get; set; }
|
||||
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
public string TantargyNev { get; set; }
|
||||
|
||||
public string Terem { get; set; }
|
||||
|
||||
public DateTime Kezdete { get; set; }
|
||||
|
||||
public DateTime Vege { get; set; }
|
||||
|
||||
public string Tema { get; set; }
|
||||
|
||||
public int? Oraszam { get; set; }
|
||||
|
||||
public int Allapot { get; set; }
|
||||
|
||||
public Guid TanarUid { get; set; }
|
||||
|
||||
public string TanarNev { get; set; }
|
||||
|
||||
public Guid? HelyettesitoTanarUid { get; set; }
|
||||
|
||||
public string HelyettesitoTanarNev { get; set; }
|
||||
|
||||
public int? EvesOraSorszam { get; set; }
|
||||
|
||||
public int? HaziFeladatId { get; set; }
|
||||
|
||||
public int? BejelentettSzamonkeresId { get; set; }
|
||||
|
||||
public string BejelentettSzamonkeresMod { get; set; }
|
||||
|
||||
public string BejelentettSzamonkeresTema { get; set; }
|
||||
|
||||
public List<CsatolmanyResponse> Csatolmanyok { get; set; }
|
||||
|
||||
public DateTime? ElozoNaplozottOraDatum { get; set; }
|
||||
|
||||
public string ElozoNaplozottOraTema { get; set; }
|
||||
|
||||
public bool Naplozart { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class OrarendElemSimplified : IEqualityComparer<OrarendElemSimplified>
|
||||
{
|
||||
public OrarendElemSimplified()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public OrarendElemSimplified(int id, int orarendiOraId, int orarendiOraGroupId, CalendarOraTypeEnum tipus, DateTime datum)
|
||||
{
|
||||
Id = id;
|
||||
OrarendiOraId = orarendiOraId;
|
||||
OrarendiOraGroupId = orarendiOraGroupId;
|
||||
Tipus = tipus;
|
||||
Datum = datum;
|
||||
}
|
||||
|
||||
public int Id { get; set; }
|
||||
|
||||
public int OrarendiOraId { get; set; }
|
||||
|
||||
public int OrarendiOraGroupId { get; set; }
|
||||
|
||||
public CalendarOraTypeEnum Tipus { get; set; }
|
||||
|
||||
public DateTime Datum { get; set; }
|
||||
|
||||
public bool Equals(OrarendElemSimplified x, OrarendElemSimplified y) => x == y || (x.Id == y.Id && x.Tipus == y.Tipus && x.Datum == y.Datum);
|
||||
|
||||
public int GetHashCode(OrarendElemSimplified obj) => obj.Id.GetHashCode();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Data.SqlTypes;
|
||||
using System.Linq;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class OrarendRequest : IValidatableObject, IModelValidacio<OrarendRequest>
|
||||
{
|
||||
public OrarendRequest(DateTime datumTol, DateTime datumIg)
|
||||
{
|
||||
DatumTol = datumTol;
|
||||
DatumIg = datumIg;
|
||||
}
|
||||
|
||||
public DateTime DatumTol { get; set; }
|
||||
|
||||
public DateTime DatumIg { get; set; }
|
||||
|
||||
public Dictionary<Predicate<OrarendRequest>, string> ModelValidaciok => new Dictionary<Predicate<OrarendRequest>, string>
|
||||
{
|
||||
{ x => x.DatumIg < x.DatumTol, $"A {nameof(DatumTol)} és a {nameof(DatumIg)} paraméterek meg vannak adva, de a {nameof(DatumTol)} nagyobb, mint a {nameof(DatumIg)} értek!" },
|
||||
{ x => (x.DatumIg - x.DatumTol).Days > 31, $"A {nameof(DatumTol)} és a {nameof(DatumIg)} paraméterek meg vannak adva, de maximum 1 hónap intervallum kérdezhető le!" },
|
||||
{ x => x.DatumTol < (DateTime)SqlDateTime.MinValue || x.DatumTol > (DateTime)SqlDateTime.MaxValue, $"A {nameof(DatumTol)} paraméter nem lehet kisebb, mint 1753. január 1. és nagyobb, mint 9999. december 31.!" },
|
||||
{ x => x.DatumIg < (DateTime)SqlDateTime.MinValue || x.DatumIg > (DateTime)SqlDateTime.MaxValue, $"A {nameof(DatumIg)} paraméter nem lehet kisebb, mint 1753. január 1. és nagyobb, mint 9999. december 31.!" },
|
||||
{ x => x.DatumTol.Millisecond > 0 || x.DatumIg.Millisecond > 0 , $"A {nameof(DatumTol)} és a {nameof(DatumIg)} paraméterek csak másodperc pontossággal megadhatóak!" }
|
||||
};
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class SzamonkeresRequest : IValidatableObject, IModelValidacio<SzamonkeresRequest>
|
||||
{
|
||||
public SzamonkeresRequest(string orarendElemUid)
|
||||
{
|
||||
OrarendElemUid = new OrarendElemUid(orarendElemUid);
|
||||
}
|
||||
|
||||
public OrarendElemUid OrarendElemUid { get; set; }
|
||||
|
||||
public int ErtekelesMod { get; set; }
|
||||
|
||||
public string Tema { get; set; }
|
||||
|
||||
public bool ForceSave { get; set; }
|
||||
|
||||
public Dictionary<Predicate<SzamonkeresRequest>, string> ModelValidaciok => new Dictionary<Predicate<SzamonkeresRequest>, string>
|
||||
{
|
||||
{ x => x.OrarendElemUid != null && x.OrarendElemUid.Tipus != CalendarOraTypeEnum.OrarendiOra, OrarendResource.CsakOrarendiOraAdhatoMeg },
|
||||
{ x => x.OrarendElemUid.Datum.Date <= DateTime.Now.Date, OrarendResource.SzamonkeresLeghamarabbAHolnapiNaptolRogzitheto }
|
||||
};
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class TanuloForOraNaplozasListRequest
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public MulasztasForOraNaplozasRequest Mulasztas { get; set; }
|
||||
public List<int> FeljegyzesTipusLista { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Naplo.Domain.V3.UniqueIdentifier;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class TanuloJelenletRequest
|
||||
{
|
||||
public TanuloJelenletRequest(string orarendElemUid)
|
||||
{
|
||||
OrarendElemUid = new OrarendElemUid(orarendElemUid);
|
||||
}
|
||||
|
||||
public TanuloJelenletRequest(CalendarOraTypeEnum tipus, int id, DateTime datum)
|
||||
{
|
||||
OrarendElemUid = new OrarendElemUid(id, tipus, datum);
|
||||
}
|
||||
|
||||
[Required]
|
||||
public OrarendElemUid OrarendElemUid { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Orarend
|
||||
{
|
||||
public class TanuloJelenletResponse
|
||||
{
|
||||
public TanuloJelenletResponse(int tanuloId, int allapot, int? keses, string szoveg, bool hasMulasztasGomb)
|
||||
{
|
||||
TanuloId = tanuloId;
|
||||
Allapot = allapot;
|
||||
MulasztasTipus = allapot;
|
||||
Keses = keses;
|
||||
Szoveg = szoveg;
|
||||
HasMulasztasGomb = hasMulasztasGomb;
|
||||
}
|
||||
|
||||
public int TanuloId { get; set; }
|
||||
|
||||
public int Allapot { get; set; }
|
||||
|
||||
public int MulasztasTipus { get; set; }
|
||||
|
||||
public int? Keses { get; set; }
|
||||
|
||||
public string Szoveg { get; set; }
|
||||
|
||||
public bool HasMulasztasGomb { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class BejelentettSzamonkeresekRequest
|
||||
{
|
||||
[Required]
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
[Required]
|
||||
public DateTime Datum { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
using System;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class BejelentettSzamonkeresekResponse
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Tema { get; set; }
|
||||
|
||||
public int ErtekelesMod { get; set; }
|
||||
|
||||
public int? OraSzam { get; set; }
|
||||
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
public string TantargyNev { get; set; }
|
||||
|
||||
public Guid TanarUid { get; set; }
|
||||
|
||||
public string TanarNev { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class MondatbankRequest
|
||||
{
|
||||
[Required]
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
[Required]
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class MondatbankResponse
|
||||
{
|
||||
public string RovidNev { get; set; }
|
||||
|
||||
public string Nev { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.Enums;
|
||||
using Kreta.Naplo.Domain.V3.Adatszotar;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class OsztalyCsoportErtekelesRequest
|
||||
{
|
||||
public DateTime Datum { get; set; }
|
||||
|
||||
public Adatszotar<ErtekelesModEnum> Mod { get; set; }
|
||||
|
||||
public string Tema { get; set; }
|
||||
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
public List<TanuloForOsztalyCsoportErtekelesRequest> TanuloLista { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Kreta.Naplo.Domain.V3.Utility.ValidationAttributes;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class OsztalyCsoportErtekelesekRequest
|
||||
{
|
||||
[Required]
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
[Required]
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
[Required, ShortDateTime]
|
||||
public DateTime Datum { get; set; }
|
||||
|
||||
public int? TanuloId { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
using System;
|
||||
using Kreta.Naplo.Domain.V3.Ertekeles;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class OsztalyCsoportErtekelesekResponse
|
||||
{
|
||||
public int TanuloId { get; set; }
|
||||
|
||||
public TanuloMentessegResponse TanuloErtekelesFelmentes { get; set; }
|
||||
|
||||
public decimal? TanuloTantargyiAtlag { get; set; }
|
||||
|
||||
public int TanuloErtekelesSzam { get; set; }
|
||||
|
||||
public ErtekelesResponse TanuloUtolsoErtekeles { get; set; }
|
||||
|
||||
public DateTime? TanuloUtolsoErtekelesDatum { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class OsztalyCsoportGondviseloResponse
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Nev { get; set; }
|
||||
|
||||
public string RokonsagiFok { get; set; }
|
||||
|
||||
public string Telefonszam { get; set; }
|
||||
|
||||
public string Email { get; set; }
|
||||
|
||||
public bool IsTorvenyesKepviselo { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class OsztalyCsoportResponse
|
||||
{
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
public string OsztalyCsoportNev { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class OsztalyCsoportTanuloAdatokResponse : OsztalyCsoportTanuloResponse
|
||||
{
|
||||
public List<OsztalyCsoportResponse> OsztalyCsoportok { get; set; }
|
||||
|
||||
public List<OsztalyCsoportGondviseloResponse> Gondviselok { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class OsztalyCsoportTanuloRequest
|
||||
{
|
||||
[Required]
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
public DateTime? Datum { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
using System;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class OsztalyCsoportTanuloResponse
|
||||
{
|
||||
public int TanuloId { get; set; }
|
||||
|
||||
public string TanuloNev { get; set; }
|
||||
|
||||
public DateTime TanuloSzuletesiDatum { get; set; }
|
||||
|
||||
public string TanuloAnyjaNeve { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class OsztalyokCsoportokResponse
|
||||
{
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
public string OsztalyCsoportNev { get; set; }
|
||||
|
||||
public bool IsTanitom { get; set; }
|
||||
|
||||
public Guid? OsztalyfonokCsoportvezetoUid { get; set; }
|
||||
|
||||
public string OsztalyfonokCsoportvezetoNev { get; set; }
|
||||
|
||||
public Guid? OsztalyfonokHelyettesUid { get; set; }
|
||||
|
||||
public string OsztalyfonokHelyettesNev { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class TanuloErtekelesMentesRequest : IValidatableObject, IModelValidacio<TanuloErtekelesMentesRequest>
|
||||
{
|
||||
public DateTime ErtekelesDatum { get; set; }
|
||||
|
||||
public int ErtekelesModId { get; set; }
|
||||
|
||||
public string ErtekelesTema { get; set; }
|
||||
|
||||
public int? ErtekelesOsztalyzatId { get; set; }
|
||||
|
||||
public string ErtekelesSzoveg { get; set; }
|
||||
|
||||
public int? ErtekelesSzazalek { get; set; }
|
||||
|
||||
public Dictionary<Predicate<TanuloErtekelesMentesRequest>, string> ModelValidaciok => new Dictionary<Predicate<TanuloErtekelesMentesRequest>, string>
|
||||
{
|
||||
{ x => x.ErtekelesOsztalyzatId == null && string.IsNullOrWhiteSpace(x.ErtekelesSzoveg) && x.ErtekelesSzazalek == null, TanuloErtekelesResource.EgyErtekelesFajtaMegadasaKotelezo },
|
||||
{ x => (x.ErtekelesOsztalyzatId != null && (!string.IsNullOrWhiteSpace(x.ErtekelesSzoveg) || x.ErtekelesSzazalek != null)) ||
|
||||
(!string.IsNullOrWhiteSpace(x.ErtekelesSzoveg) && (x.ErtekelesOsztalyzatId != null || x.ErtekelesSzazalek != null)) ||
|
||||
(x.ErtekelesSzazalek != null && (x.ErtekelesOsztalyzatId != null || !string.IsNullOrWhiteSpace(x.ErtekelesSzoveg))),
|
||||
TanuloErtekelesResource.HibasanMegadottErtekelesEgyszerreCsakEgyFajtaErtekelesAdhatoMeg
|
||||
},
|
||||
{ x => x.ErtekelesSzazalek != null && (x.ErtekelesSzazalek < 0 || x.ErtekelesSzazalek > 100), TanuloErtekelesResource.SzazalekosErtekNincsAMegengedettTartomanyban }
|
||||
};
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) => ModelValidaciok.Where(x => x.Key.Invoke(this)).AsEnumerable().Select(x => new ValidationResult(x.Value));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class TanuloErtekelesekRequest
|
||||
{
|
||||
[Required]
|
||||
public int TanuloId { get; set; }
|
||||
|
||||
[Required]
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
[Required]
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
using System;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class TanuloErtekelesekResponse
|
||||
{
|
||||
public int ErtekelesId { get; set; }
|
||||
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
public string TantargyNev { get; set; }
|
||||
|
||||
public string Ertekeles { get; set; }
|
||||
|
||||
public int? ErtekelesOsztalyzatId { get; set; }
|
||||
|
||||
public string ErtekelesOsztalyzatNev { get; set; }
|
||||
|
||||
public string ErtekelesSzoveg { get; set; }
|
||||
|
||||
public int? ErtekelesSzazalek { get; set; }
|
||||
|
||||
public int ErtekelesFajtaId { get; set; }
|
||||
|
||||
public string ErtekelesFajtaNev { get; set; }
|
||||
|
||||
public int? ErtekelesModId { get; set; }
|
||||
|
||||
public string ErtekelesModNev { get; set; }
|
||||
|
||||
public int ErtekelesTipusId { get; set; }
|
||||
|
||||
public string ErtekelesTipusNev { get; set; }
|
||||
|
||||
public string ErtekelesTema { get; set; }
|
||||
|
||||
public DateTime ErtekelesDatum { get; set; }
|
||||
|
||||
public int? ErtekelesSuly { get; set; }
|
||||
|
||||
public DateTime ErtekelesRogzitesDatum { get; set; }
|
||||
|
||||
public Guid TanarUid { get; set; }
|
||||
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
public int FeladatEllatasiHelyId { get; set; }
|
||||
|
||||
public string FeladatEllatasiHelyNev { get; set; }
|
||||
|
||||
public bool Naplozart { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
using Kreta.Naplo.Domain.V3.Ertekeles;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.OsztalyCsoport
|
||||
{
|
||||
public class TanuloForOsztalyCsoportErtekelesRequest
|
||||
{
|
||||
public ErtekelesRequest Ertekeles { get; set; }
|
||||
|
||||
public int TanuloId { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Tanar
|
||||
{
|
||||
public class BeallitasokRequest
|
||||
{
|
||||
public bool ElozoOranHianyzoAjanlasa { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Tanar
|
||||
{
|
||||
public class BeallitasokResponse
|
||||
{
|
||||
public bool ElozoOranHianyzoAjanlasa { get; set; }
|
||||
|
||||
public int NapiSzamonkeresLimit { get; set; }
|
||||
|
||||
public List<int> LimitaltSzamonkeresekTipusai { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
using System;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Tanar
|
||||
{
|
||||
public class ProfilResponse
|
||||
{
|
||||
public Guid Uid { get; set; }
|
||||
|
||||
public string Nev { get; set; }
|
||||
|
||||
public string IntezmenyNev { get; set; }
|
||||
|
||||
public int FeladatEllatasiHelyId { get; set; }
|
||||
|
||||
public string FeladatEllatasiHelyNev { get; set; }
|
||||
|
||||
public string PublikusEmailCim { get; set; }
|
||||
|
||||
public string PublikusTelefonszam { get; set; }
|
||||
|
||||
public string MunkahelyiEmailCim { get; set; }
|
||||
|
||||
public string MunkahelyiTelefonszam { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Tanar
|
||||
{
|
||||
public class TantargyFelosztasResponse
|
||||
{
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
public string OsztalyCsoportNev { get; set; }
|
||||
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
public string TantargyNev { get; set; }
|
||||
|
||||
public int FeladatellatasiHelyId { get; set; }
|
||||
|
||||
public string FeladatellatasiHely { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
namespace Kreta.Naplo.Domain.V3.Tanmenet
|
||||
{
|
||||
public class TanmenetItemListResponse
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Tema { get; set; }
|
||||
|
||||
public int EvesOraszam { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Tanmenet
|
||||
{
|
||||
public class TanmenetListResponse
|
||||
{
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
public Guid TanarUid { get; set; }
|
||||
|
||||
public List<TanmenetItemListResponse> Items { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
using System;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Tanmenet
|
||||
{
|
||||
public class TanmenetRequest
|
||||
{
|
||||
public int OsztalyCsoportId { get; set; }
|
||||
|
||||
public int TantargyId { get; set; }
|
||||
|
||||
public Guid TanarUid { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
using Kreta.Naplo.Domain.V3.Logic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.UniqueIdentifier
|
||||
{
|
||||
[Serializable]
|
||||
public class AdatszotarUid : IReadonlyUidRaw, IEqualityComparer<AdatszotarUid>
|
||||
{
|
||||
public AdatszotarUid(int id, string nev)
|
||||
{
|
||||
Id = id;
|
||||
Nev = nev;
|
||||
UidRaw = UidLogic.Concat(id, nev);
|
||||
}
|
||||
|
||||
public AdatszotarUid(string uidRaw)
|
||||
{
|
||||
var compositeKeyElements = UidLogic.GetCompositeKeyElements(uidRaw);
|
||||
Id = int.TryParse(compositeKeyElements[0], out int result) ? result : 0;
|
||||
Nev = compositeKeyElements[1];
|
||||
UidRaw = uidRaw;
|
||||
}
|
||||
|
||||
public int Id { get; private set; }
|
||||
|
||||
public string Nev { get; private set; }
|
||||
|
||||
public string UidRaw { get; private set; }
|
||||
|
||||
public bool Equals(AdatszotarUid x, AdatszotarUid y) => x == y || x.UidRaw == y.UidRaw;
|
||||
|
||||
public int GetHashCode(AdatszotarUid obj) => obj.UidRaw.GetHashCode();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
using System.Collections.Generic;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.UniqueIdentifier
|
||||
{
|
||||
public class IntezmenyUid : IReadonlyUidRaw, IEqualityComparer<IntezmenyUid>
|
||||
{
|
||||
public IntezmenyUid(int id)
|
||||
{
|
||||
Id = id;
|
||||
UidRaw = id.ToString();
|
||||
}
|
||||
|
||||
public IntezmenyUid(string uidRaw)
|
||||
{
|
||||
Id = int.Parse(uidRaw);
|
||||
UidRaw = uidRaw;
|
||||
}
|
||||
|
||||
public int Id { get; private set; }
|
||||
|
||||
public string UidRaw { get; private set; }
|
||||
|
||||
public bool Equals(IntezmenyUid x, IntezmenyUid y) => x == y || x.UidRaw == y.UidRaw;
|
||||
|
||||
public int GetHashCode(IntezmenyUid obj) => obj.UidRaw.GetHashCode();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Kreta.Enums.ManualEnums;
|
||||
using Kreta.Naplo.Domain.V3.Interfaces;
|
||||
using Kreta.Naplo.Domain.V3.Logic;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.UniqueIdentifier
|
||||
{
|
||||
public class OrarendElemUid : IReadonlyUidRaw, IEqualityComparer<OrarendElemUid>
|
||||
{
|
||||
public OrarendElemUid()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public OrarendElemUid(int id, CalendarOraTypeEnum tipus, DateTime datum)
|
||||
{
|
||||
Id = id;
|
||||
Tipus = tipus;
|
||||
Datum = datum;
|
||||
UidRaw = UidLogic.Concat(id, tipus, datum);
|
||||
}
|
||||
|
||||
public OrarendElemUid(string uidRaw)
|
||||
{
|
||||
var compositeKeyElements = UidLogic.GetCompositeKeyElements(uidRaw);
|
||||
Id = int.Parse(compositeKeyElements[0]);
|
||||
Tipus = (CalendarOraTypeEnum)System.Enum.Parse(typeof(CalendarOraTypeEnum), compositeKeyElements[1]);
|
||||
Datum = DateTime.Parse(compositeKeyElements[2]).ToLocalTime().Date;
|
||||
UidRaw = uidRaw;
|
||||
}
|
||||
|
||||
public int Id { get; set; }
|
||||
|
||||
public string UidRaw { get; private set; }
|
||||
|
||||
public CalendarOraTypeEnum Tipus { get; set; }
|
||||
|
||||
public DateTime Datum { get; set; }
|
||||
|
||||
public bool Equals(OrarendElemUid x, OrarendElemUid y) => x == y || x.UidRaw == y.UidRaw;
|
||||
|
||||
public int GetHashCode(OrarendElemUid obj) => obj.UidRaw.GetHashCode();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Utility
|
||||
{
|
||||
public static class Extensions
|
||||
{
|
||||
/// UTC: 2016-10-30T20:00:00Z
|
||||
/// Local: 2016-10-30T23:00:00+01:00
|
||||
/// Unspecified: 2016-10-30T22:00:00
|
||||
public static DateTime ToIso8601Utc(this DateTime dt)
|
||||
=> new DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minute, dt.Second, dt.Kind).ToUniversalTime();
|
||||
|
||||
/// UTC: 2016-10-30T20:00:00Z
|
||||
/// Local: 2016-10-30T23:00:00+01:00
|
||||
/// Unspecified: 2016-10-30T22:00:00
|
||||
public static string ToIso8601UtcString(this DateTime dt)
|
||||
=> dt.ToString("yyyy-MM-dd'T'HH:mm:ssK", CultureInfo.InvariantCulture);
|
||||
|
||||
public static IEnumerable<TOutput> ConvertAll<TInput, TOutput>(this IEnumerable<TInput> collection, Converter<TInput, TOutput> converter)
|
||||
{
|
||||
foreach (TInput item in collection)
|
||||
{
|
||||
yield return converter.Invoke(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Utility.ValidationAttributes
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Property)]
|
||||
public class EnumToDescriptionAttribute : DescriptionAttribute
|
||||
{
|
||||
public override string Description => base.Description;
|
||||
|
||||
public EnumToDescriptionAttribute(string description, Type enumType)
|
||||
{
|
||||
DescriptionValue = description + " (" + GetEnumsFromGenerated(enumType) + ")";
|
||||
}
|
||||
|
||||
private string GetEnumsFromGenerated(Type enumType)
|
||||
{
|
||||
var enumNames = System.Enum.GetNames(enumType).ToList();
|
||||
return string.Join(", ", enumNames);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Kreta.Naplo.Domain.V3.Utility.ValidationAttributes
|
||||
{
|
||||
[AttributeUsage(AttributeTargets.Property)]
|
||||
internal sealed class ShortDateTimeAttribute : ValidationAttribute
|
||||
{
|
||||
public override bool IsValid(object value)
|
||||
{
|
||||
DateTime? timePropertyValue = value as DateTime?;
|
||||
|
||||
return !timePropertyValue.HasValue || timePropertyValue.Value - timePropertyValue.Value.Date == new TimeSpan(0);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue