init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
|
@ -0,0 +1,91 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
|
||||
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.Ertekeles;
|
||||
using Kreta.BusinessLogic.Helpers;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Validation.Exceptions;
|
||||
using Kreta.Core.Validation.Exceptions.Enum;
|
||||
using Kreta.Framework.Entities;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Post
|
||||
{
|
||||
public static class ErtekelesPostSubqueries
|
||||
{
|
||||
public static List<ErtekelesResponseCo> CreateOsztalyCsoportErtekeles(int teacherId, DefaultConnectionParameters defaultConnectionParameters, List<OsztalyCsoportErtekelesRequestCo> request)
|
||||
{
|
||||
var response = new List<ErtekelesResponseCo>();
|
||||
|
||||
if (IsRequestContainsDuplicatedItem(request))
|
||||
{
|
||||
response.Add(new ErtekelesResponseCo()
|
||||
{
|
||||
Exception = new ValidationException("A kérés többször tartalmazza ugyanazt az értékelést!")
|
||||
});
|
||||
return response;
|
||||
}
|
||||
|
||||
var helper = new TanuloErtekelesHelper(new MobileConnectionType(teacherId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId));
|
||||
foreach (var osztalyCsoportErtekeles in request)
|
||||
{
|
||||
try
|
||||
{
|
||||
helper.SaveTanuloErtekelesListMobilV2(teacherId, osztalyCsoportErtekeles);
|
||||
}
|
||||
catch (ValidationException execption)
|
||||
{
|
||||
response.Add(new ErtekelesResponseCo()
|
||||
{
|
||||
Exception = execption
|
||||
});
|
||||
}
|
||||
catch (EntityNotFoundException)
|
||||
{
|
||||
response.Add(new ErtekelesResponseCo()
|
||||
{
|
||||
Exception = CreateMobileExeption(osztalyCsoportErtekeles.TanuloLista, ErrorResource.AzElemNemTalalhatoVagyToroltek)
|
||||
});
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
response.Add(new ErtekelesResponseCo()
|
||||
{
|
||||
Exception = CreateMobileExeption(osztalyCsoportErtekeles.TanuloLista, ErrorResource.Hiba)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
private static ValidationException CreateMobileExeption(List<TanuloForOsztalyCsoportErtekelesRequestCo> tanuloList, string message)
|
||||
{
|
||||
var ex = new ValidationException(ValidationErrorType.Undefined, TanuloErtekelesResource.HibasErtekeles);
|
||||
foreach (var item in tanuloList)
|
||||
{
|
||||
ex.AddValidationItem(item.MobilId.ToString(), message);
|
||||
}
|
||||
return ex;
|
||||
}
|
||||
|
||||
private static bool IsRequestContainsDuplicatedItem(List<OsztalyCsoportErtekelesRequestCo> request)
|
||||
{
|
||||
var requestUniqueItems = new List<(DateTime datum, int tantargyId, string tema, int tanuloErtekelesHashCode)>();
|
||||
|
||||
foreach (var item in request)
|
||||
{
|
||||
int tanuloErtekelesHashCode = item.TanuloLista.Select(x => $"{x.TanuloId} + {x.Ertekeles.OsztalyzatTipus} + {x.Ertekeles.Szazalek} + {x.Ertekeles.Szoveg}").Aggregate((a, b) => a + b).GetHashCode();
|
||||
var requestItem = (item.Datum, item.TantargyId, item.Tema, tanuloErtekelesHashCode);
|
||||
if (requestUniqueItems.Contains(requestItem))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
requestUniqueItems.Add(requestItem);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue