| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | using System;using System.Collections.Generic;using System.Linq;using Comal.Classes;using InABox.Core;namespace Comal.Stores{    public class EmployeeStore : SchedulableStore<Employee>    {        protected override void BeforeSave(Employee entity)        {            //entity.HasAttachments = entity.Attachments.Count > 0;            base.BeforeSave(entity);        }        private void LoadStandardLeaves(Employee entity)        {            var updates = new List<LeaveRequest>();            var leaves = Provider.Load<StandardLeave>();            foreach (var leave in leaves)            {                var request = new LeaveRequest().LoadFrom(leave);                request.EmployeeLink.ID = entity.ID;                request.Status = LeaveRequestStatus.Approved;                updates.Add(request);            }            FindSubStore<LeaveRequest>().Save(updates, "Auto Generated on Employee Creation");        }        protected override void AfterSave(Employee entity)        {            base.AfterSave(entity);            if (entity.HasOriginalValue(x => x.ID))            {                var origid = entity.GetOriginalValue(x => x.ID);                if (origid == Guid.Empty)                    LoadStandardLeaves(entity);            }            var orig = entity.HasOriginalValue(x => x.FinishDate) ? entity.GetOriginalValue(x => x.FinishDate) : entity.FinishDate;            if (entity.UserLink.IsValid() && orig.IsEmpty() != entity.FinishDate.IsEmpty())            {                var user = Provider.Load(new Filter<User>(x => x.ID).IsEqualTo(entity.UserLink.ID)).FirstOrDefault();                if (user != null && user.Disabled == entity.FinishDate.IsEmpty())                {                    user.Disabled = !entity.FinishDate.IsEmpty();                    Provider.Save(user);                }            }        }    }}
 |