Beispiel #1
0
        public async Task <int> CreateLeaveApp([Bind] LeaveApplicationCreateModel model)
        {
            try
            {
                int id             = 0;
                var createLeaveapp = new LeaveApplication
                {
                    EmployeeId         = model.EmployeeId,
                    ManagerId          = model.ManagerId,
                    Status             = model.Status,
                    EndDate            = model.EndDate,
                    DaysLeaveRemaining = model.DaysLeaveRemaining,
                    NumberOfAbsent     = model.NumberOfAbsent,
                    CommentDate        = model.CommentDate,
                    FeedbackDate       = model.FeedbackDate,
                    Comment            = model.Comment,
                    StartDate          = model.StartDate,
                    Feedback           = model.Feedback,
                    LeaveCode          = model.LeaveCode
                };
                if (_context != null)
                {
                    _context.LeaveApplication.Add(createLeaveapp);
                    await _context.SaveChangesAsync();

                    id = createLeaveapp.Id;
                }

                var sendEmail = EmailService.Send(new SendEmailRequest()
                {
                    Template = "",
                    Body     = $"Application for employee permission: <br> " +
                               $"+ FullName: {model.FullName} <br>" +
                               $"+ Department: {model.Department} <br>" +
                               $"+ Start Day Of Leaves: {model.StartDate.ToString("dddd, dd MMMM yyyy")} <br>" +
                               $"+ End Day Of Leaves: {(model.EndDate.HasValue ? model.EndDate.Value.ToString("dddd, dd MMMM yyyy") : "")} <br>" +
                               $"+ Comment: {model.Comment} <br>" +
                               $"+ Date Of Leaves Application: {model.CommentDate.ToString("dddd, dd MMMM yyyy")}",
                    Subject = "Leaves Application",
                    ToEmail = model.Email
                });

                return(id);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <int> CreateEmployee(CreateEmployee employee)
        {
            int id     = 0;
            var create = new Employee
            {
                FullName     = employee.FullName,
                PositionId   = employee.PositionId,
                DepartmentId = employee.DepartmentId,
                Sex          = employee.Sex != 0,
                Dob          = employee.DOB,
                IdNumber     = employee.IdNumber,
                PhoneNumber  = employee.PhoneNumber,
                Email        = employee.Email,
                Address      = employee.Address,
                TaxId        = employee.TaxId,
                Image        = employee.Image,
                CreateDate   = DateTime.Now,
                EditDate     = DateTime.Now,
                IsActive     = true,
                IsDelete     = false
            };

            try
            {
                if (create.PositionId == 1)
                {
                    int select = await(from e in db.Employee
                                       where e.PositionId == 1 && e.DepartmentId == create.DepartmentId &&
                                       e.IsDelete == false && e.IsActive == true
                                       select e.Id).FirstOrDefaultAsync();
                    if (select != 0)
                    {
                        var emp = await(from e in db.Employee
                                        where e.PositionId == 1 && e.DepartmentId == create.DepartmentId &&
                                        e.IsDelete == false && e.IsActive == true
                                        select e).FirstOrDefaultAsync();
                        var update = new Employee
                        {
                            Id           = emp.Id,
                            PositionId   = 3,
                            FullName     = emp.FullName,
                            DepartmentId = emp.DepartmentId,
                            Sex          = emp.Sex,
                            Dob          = emp.Dob,
                            IdNumber     = emp.IdNumber,
                            PhoneNumber  = emp.PhoneNumber,
                            Email        = emp.Email,
                            Address      = emp.Address,
                            TaxId        = emp.TaxId,
                            Image        = emp.Image,
                            EditDate     = emp.EditDate,
                            IsActive     = true
                        };
                        db.Employee.Update(update);
                        await db.SaveChangesAsync();

                        return(id = update.Id);
                    }
                }
                db.Employee.Add(create);
                await db.SaveChangesAsync();

                return(id = create.Id);
            }
            catch (Exception exp)
            {
                throw exp;
            }
        }