Example #1
0
        public LeaveApplDetails InsertLeaveApplDetails(LeaveApplDetails leaveappldetails, out RETIRNSTATUS status, out string errormsg)
        {
            try
            {
                //if (!validateleaves(leaveappldetails.leavecode, leaveappldetails.empcode, leaveappldetails.leavefrom, leaveappldetails.leaveto, out errormsg))
                if (!validateleaves(leaveappldetails.LeaveCode, leaveappldetails.EmpCode, Convert.ToDecimal(leaveappldetails.LeaveDays), out errormsg))
                {
                    status = RETIRNSTATUS.FAIL;
                    return(null);
                }

                using (MobileContext context = new MobileContext())
                {
                    using (var transaction = context.Database.BeginTransaction())
                    {
                        try
                        {
                            // leaveappldetails.leavedays = calculatenoofdays(leaveappldetails.leavefrom, leaveappldetails.leaveto, leaveappldetails.halfdayfrom, leaveappldetails.halfdayto);
                            Employees employeeobj = getemployee(leaveappldetails.EmpCode);
                            leaveappldetails.EmpName = employeeobj.Name;
                            //leaveappldetails.RecommendedId = employeeobj.RecommendedBy;
                            //leaveappldetails.ApprovedId = employeeobj.ApprovedBy;
                            //leaveappldetails.ApprovedName = getemployee(leaveappldetails.ApprovedId)?.Name;
                            //leaveappldetails.RecommendedName = getemployee(leaveappldetails.RecommendedId)?.Name;

                            updateusedleaves(leaveappldetails.EmpCode, leaveappldetails.LeaveDays, context);

                            leaveappldetails.Status  = STATUS.NEW.ToString();
                            leaveappldetails.AddDate = DateTime.Now;
                            context.LeaveApplDetails.Add(leaveappldetails);
                            if (context.SaveChanges() > 0)
                            {
                                transaction.Commit();
                                status = RETIRNSTATUS.PASS;
                                return(leaveappldetails);
                            }
                            transaction.Rollback();
                            errormsg = "error occured, failed to apply leaves";
                            status   = RETIRNSTATUS.FAIL;
                            return(null);
                        }
                        catch (Exception ex)
                        {
                            transaction.Rollback();
                            throw ex;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #2
0
        public async Task <IActionResult> ApplyLeaveRequest([FromBody] LeaveApplDetails leaveApplDetails)
        {
            if (leaveApplDetails == null)
            {
                return(Ok(new APIResponse()
                {
                    STATUS = APISTATUS.FAIL.ToString(), Response = "Request is empty."
                }));
            }

            try
            {
                RETIRNSTATUS status;
                string       errorMsg = string.Empty;

                LeaveApplDetails result = new leaveRequestHelper().InsertLeaveApplDetails(leaveApplDetails, out status, out errorMsg);
                if (status == RETIRNSTATUS.PASS)
                {
                    return(Ok(new APIResponse()
                    {
                        STATUS = APISTATUS.PASS.ToString(), Response = result
                    }));
                }

                return(Ok(new APIResponse()
                {
                    STATUS = APISTATUS.FAIL.ToString(), Response = errorMsg
                }));
            }
            catch (Exception ex)
            {
                return(Ok(new APIResponse()
                {
                    STATUS = APISTATUS.FAIL.ToString(), Response = ex.Message
                }));
            }
        }