Как говорится в названии, im пытается сравнить штамп в datetime и вычеркнутый datetime.Сравнение двух списков в C# ASP.NET MVC LINQ Entity Framework
У меня есть переменная flex, которая должна получить значение разницы между этими двумя датами в рабочий день (8 часов).
"Если я штамповать в 08:00 и искоренять 17:00, мой прогибается должен быть +1 (ч)"
Модель:
public class FlexModel
{
public List<User> Users { get; set; }
public List<Stamping> Stampings { get; set; }
public decimal FlexTime { get; set; }
}
public partial class Stamping
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public int UserId { get; set; }
[Required]
[DataType(DataType.DateTime)]
public DateTime Timestamp { get; set; }
[Required]
[StringLength(3)]
public string StampingType { get; set; }
public virtual User User { get; set; }
}
Вид:
@Html.LabelFor(model => model.FlexTime, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DisplayFor(model => model.FlexTime, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.FlexTime, "", new { @class = "text-danger" })
</div>
Контроллер:
public ActionResult Info()
{
var flexModel = new FlexModel();
var userId = (int)Session["userId"];
var user = _db.Users.Find(userId);
var stampIn = _db.Stampings
.Where(i => i.StampingType == "in")
.Where(i => i.User == user)
.ToList();
var stampOut = _db.Stampings
.Where(i => i.StampingType == "out")
.Where(i => i.User == user)
.ToList();
var workDay = 8;
if (stampIn.Count == 0)
{
return View();
}
foreach (var itemIn in stampIn)
{
//Dont know what to do here
}
foreach (var itemOut in stampOut)
{
//Dont know what to do here either
}
return View();
}
Просьба помочь.
показать Класс штамповки –
Я только что отредактировал его! Посмотрите, пожалуйста, ... – Qvadriologic
ваша реализация класса не выглядит прекрасной для меня, добавьте в класс 'TimeOut' и' TimeIn' оба, если 'TimeOut' равно null, а' TimeIn' не null - это 'TimeIn', если nboth тогда это' TimeOut' –