Example #1
0
        public void CreateTimeOffRequestApprovalsForRequest
            (TimeOffRequest request, IEnumerable <string> userPolicyApproversId)
        {
            var approvals = new List <TimeOffRequestApproval>();

            foreach (var approverId in userPolicyApproversId)
            {
                var approval = new TimeOffRequestApproval
                {
                    UserId         = approverId,
                    TimeOffRequest = request,
                    Status         = unitOfWork.RequestApprovalStatuses.Get(
                        (int)TimeOffRequestApprovalStatusesEnum.InProgres)
                };

                approvals.Add(approval);
            }

            approvals.FirstOrDefault().Status = unitOfWork.RequestApprovalStatuses.Get(
                (int)TimeOffRequestApprovalStatusesEnum.Requested);

            foreach (var approval in approvals)
            {
                unitOfWork.RequestApprovals.Create(approval);
            }
        }
        public ActionResult Create(string startDate, string endDate)
        {
            if (ModelState.IsValid)
            {
                TimeOffRequest request = new TimeOffRequest()
                {
                    EffectiveStart = Convert.ToDateTime(startDate),
                    EffectiveEnd   = Convert.ToDateTime(endDate)
                };

                // Code to save the TimeOffRequest
                try
                {
                    _requestManager.AddTimeOffRequest(request, Convert.ToInt32(Session["RequestingUserID"]));

                    return(Json(Url.Action("Index", "ChooseRequestType", new { outputMessage = "SUCCESS: Time Off Request Submitted!" })));
                }
                catch
                {
                    return(Json(Url.Action("Index", "ChooseRequestType", new { outputMessage = "ERROR: Could Not Submit Time Off Request" })));
                }
            }
            else
            {
                return(View());
            }
        }
Example #3
0
        public ActionResult Accept(int id)
        {
            Employee       emp = null;
            TimeOffRequest req = db.TimeOffRequests.Find(id);

            foreach (Employee e in db.Employees)
            {
                foreach (TimeOffRequest tmp in e.TimeOffRequests)
                {
                    if (tmp == req)
                    {
                        emp = e;
                        string     email  = emp.Email;
                        SmtpClient client = new SmtpClient("smtp.live.com", 25);
                        client.Credentials    = new System.Net.NetworkCredential("*****@*****.**", "dudethatko1");
                        client.DeliveryMethod = SmtpDeliveryMethod.Network;
                        client.EnableSsl      = true;
                        MailMessage msg = new MailMessage("*****@*****.**", email, "Accepted", "Congrats bud");
                        client.Send(msg);
                        return(View(emp));
                    }
                }
            }
            return(RedirectToAction("AdminApproval"));
        }
        public ActionResult Index([Bind(Include = "StartDate,EndDate,Reason,Type")] TimeOffRequest timeOffRequest)
        {
            if ((timeOffRequest.StartDate < DateTime.Now) ||
                (timeOffRequest.EndDate < DateTime.Now) ||
                (timeOffRequest.StartDate > timeOffRequest.EndDate))
            {
                ViewData["typesOfTimeOff"] = new string[] { "Vacation", "Personal Emergency", "Appointment" };
                return(View(timeOffRequest));
            }
            //TimeOffRequestId,WhenSent
            timeOffRequest.WhenSent = DateTime.Now;
            if (ModelState.IsValid)
            {
                try
                {
                    db.TimeOffRequests.Add(timeOffRequest);
                    db.SaveChanges();
                    db.Employees.Find(sessionEmployee).TimeOffRequests.Add(timeOffRequest);
                    db.SaveChanges();
                } catch (Exception e) {
                    return(RedirectToAction("Failure"));
                }
                return(RedirectToAction("Success"));
            }

            ViewData["typesOfTimeOff"] = new string[] { "Vacation", "Personal Emergency", "Appointment" };
            return(View(timeOffRequest));
        }
Example #5
0
        public ActionResult Index([Bind(Include = "StartDate,EndDate,Reason")] TimeOffRequest timeOffRequest)
        {
            if ((timeOffRequest.StartDate < DateTime.Now) ||
                (timeOffRequest.EndDate < DateTime.Now) ||
                (timeOffRequest.StartDate > timeOffRequest.EndDate))
            {
                ViewData["typesOfTimeOff"] = db.TypesOfTimeOff.ToArray();
                return(View(timeOffRequest));
            }
            //TimeOffRequestId,WhenSent
            timeOffRequest.WhenSent = DateTime.Now;
            if (ModelState.IsValid)
            {
                try
                {
                    db.TimeOffRequests.Add(timeOffRequest);
                    db.SaveChanges();
                    db.Employees.Find("a00828729").TimeOffRequests.Add(timeOffRequest);
                    db.SaveChanges();
                    db.TypesOfTimeOff.Find(Request.Form.Get("Type")).TimeOffRequests.Add(timeOffRequest);
                    db.SaveChanges();
                } catch (Exception e) {
                    return(RedirectToAction("Failure"));
                }
                return(RedirectToAction("Success"));
            }

            ViewData["typesOfTimeOff"] = db.TypesOfTimeOff.ToArray();
            return(View(timeOffRequest));
        }
Example #6
0
        /// <summary>
        ///  CREATOR: Kaleb Bachert
        ///  CREATED: 2020/3/3
        ///  APPROVER: NA
        ///
        ///  This method creates a Time Off Request
        /// </summary>
        /// <remarks>
        /// UPDATER: NA
        /// UPDATED: NA
        /// UPDATE: NA
        ///
        /// </remarks>
        /// <param name="requestID"></param>
        /// <param name="userID"></param>
        public int InsertTimeOffRequest(TimeOffRequest request, int requestingUserID)
        {
            int rows = 0;

            var conn = DBConnection.GetConnection();
            var cmd  = new SqlCommand("sp_insert_time_off_request", conn);

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@EffectiveStart", request.EffectiveStart);
            cmd.Parameters.AddWithValue("@EffectiveEnd", request.EffectiveEnd);
            cmd.Parameters.AddWithValue("@RequestingUserID", requestingUserID);

            try
            {
                conn.Open();
                rows = cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                conn.Close();
            }
            return(rows);
        }
Example #7
0
        /// <summary>
        /// Creator: Kaleb Bachert
        /// Created: 3/3/2020
        /// Approver: Lane Sandburg
        ///
        /// Method that inserts a dummy Request, for testing
        /// </summary>
        /// <remarks>
        /// Updater: NA
        /// Updated: NA
        /// Update: NA
        /// </remarks>
        public int InsertTimeOffRequest(TimeOffRequest request, int requestingUserID)
        {
            int oldCount = timeOffRequests.Count;

            timeOffRequests.Add(request);

            return(timeOffRequests.Count - oldCount);
        }
Example #8
0
        public ActionResult DeclineDelete(int id)
        {
            TimeOffRequest req = db.TimeOffRequests.Find(id);

            db.TimeOffRequests.Remove(req);
            db.SaveChanges();
            return(RedirectToAction("AdminApproval"));
        }
 /// <summary>
 ///  CREATOR: Kaleb Bachert
 ///  CREATED: 2020/3/3
 ///  APPROVER: Lane Sandburg
 ///
 ///  This method calls the InsertTimeOffRequest method from the Accessor
 /// </summary>
 /// <remarks>
 /// UPDATER: NA
 /// UPDATED: NA
 /// UPDATE: NA
 ///
 /// </remarks>
 /// <param name="requestID"></param>
 /// <param name="userID"></param>
 public bool AddTimeOffRequest(TimeOffRequest request, int requestingEmployeeID)
 {
     try
     {
         return(1 == _requestAccessor.InsertTimeOffRequest(request, requestingEmployeeID));
     }
     catch (Exception ex)
     {
         throw new ApplicationException("Data not found.", ex);
     }
 }
        public ActionResult Accept(int id)
        {
            TimeOffRequest req    = db.TimeOffRequests.Include(e => e.Employee).Where(e => e.TimeOffRequestId == id).FirstOrDefault();
            SmtpClient     client = new SmtpClient("smtp.live.com", 25);

            client.Credentials    = new System.Net.NetworkCredential("*****@*****.**", "dudethatko1");
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.EnableSsl      = true;
            MailMessage msg = new MailMessage("*****@*****.**", req.Employee.Email, "Accepted", "Congrats bud");

            client.Send(msg);
            req.Status          = "Yes";
            db.Entry(req).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("AdminApproval"));
        }
        /// <summary>
        /// Create new navigation property to timeOffRequests for groups
        /// <param name="body"></param>
        /// <param name="requestConfiguration">Configuration for the request such as headers, query parameters, and middleware options.</param>
        /// </summary>
        public RequestInformation CreatePostRequestInformation(TimeOffRequest body, Action <TimeOffRequestsRequestBuilderPostRequestConfiguration> requestConfiguration = default)
        {
            _ = body ?? throw new ArgumentNullException(nameof(body));
            var requestInfo = new RequestInformation {
                HttpMethod     = Method.POST,
                UrlTemplate    = UrlTemplate,
                PathParameters = PathParameters,
            };

            requestInfo.SetContentFromParsable(RequestAdapter, "application/json", body);
            if (requestConfiguration != null)
            {
                var requestConfig = new TimeOffRequestsRequestBuilderPostRequestConfiguration();
                requestConfiguration.Invoke(requestConfig);
                requestInfo.AddRequestOptions(requestConfig.Options);
                requestInfo.AddHeaders(requestConfig.Headers);
            }
            return(requestInfo);
        }
Example #12
0
        public async Task CreateTimeOffAsync(string teamId, TimeOffModel timeOff)
        {
            Guard.ArgumentNotNullOrEmpty(timeOff.TeamsEmployeeId, nameof(TimeOffModel.TeamsEmployeeId));

            var client = _clientFactory.CreateClient(_options, teamId);

            var request = new TimeOffRequest
            {
                UserId        = timeOff.TeamsEmployeeId,
                DraftTimeOff  = _options.DraftShiftsEnabled ? _timeOffMap.MapTimeOff(timeOff) : null,
                SharedTimeOff = _options.DraftShiftsEnabled ? null : _timeOffMap.MapTimeOff(timeOff)
            };

            var response = await client.CreateTimeOffAsync(request, teamId).ConfigureAwait(false);

            response.ThrowIfError();

            // update the time off with the Teams id for the time off
            timeOff.TeamsTimeOffId = ((TimeOffResponse)response).Id;
        }
 public void Init()
 {
     instance = new TimeOffRequest();
 }