public async Task <IActionResult> Edit(int id, AgentAvailabilityViewModel agentAvailability)
        {
            if (id != agentAvailability.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(agentAvailability.GetModel());
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AgentAvailabilityExists(agentAvailability.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["AgentId"] = new SelectList(_context.Agent, "Id", "Id", agentAvailability.AgentId);

            agentAvailability.loadLists(_context);
            return(View(agentAvailability));
        }
        // GET: AgentAvailabilities/Create
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public IActionResult Create()
        {
            AgentAvailabilityViewModel vm;

            vm = new AgentAvailabilityViewModel(_context);
            ViewData["AgentId"] = new SelectList(_context.Agent, "Id", "Id");
            return(View(vm));
        }
        public async Task <IActionResult> Create(AgentAvailabilityViewModel agentAvailability)
        {
            //Generate number
            Random rd        = new Random();
            Int32  batchCode = rd.Next(9999);

            agentAvailability.BatchNo = "A-" + batchCode.ToString();

            if (ModelState.IsValid)
            {
                AgentAvailability availability = new AgentAvailability();
                {
                    availability.Id        = agentAvailability.Id;
                    availability.AgentId   = agentAvailability.AgentId;
                    availability.BatchNo   = agentAvailability.BatchNo;
                    availability.StartDate = agentAvailability.StartDate;
                    availability.EndDate   = agentAvailability.EndDate;
                    availability.Days      = agentAvailability.Days;
                    availability.Shift1    = agentAvailability.Shift1;
                    availability.Shift2    = agentAvailability.Shift2;
                    availability.Shift3    = agentAvailability.Shift3;
                    availability.Shift4    = agentAvailability.Shift4;
                }
                _context.Add(availability);
                await _context.SaveChangesAsync();

                AgentAvailabilityDetailsViewModel details = new AgentAvailabilityDetailsViewModel();

                int id = availability.Id;

                details.AgentAvailabillityId = availability.Id;


                Util util = new Util();
                foreach (DateTime day in util.EachDay(agentAvailability.StartDate, agentAvailability.EndDate))
                {
                    //(int)day.DayOfWeek
                    var a = (int)day.DayOfWeek;
                    foreach (char d in agentAvailability.Days)
                    {
                        var val = (int)Char.GetNumericValue(d);
                        if (a == val)
                        {
                            details.Date = day;
                            _context.Add(details.GetModel());
                            await _context.SaveChangesAsync();
                        }
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }

            ViewData["AgentId"] = new SelectList(_context.Agent, "Id", "Id", agentAvailability.AgentId);
            agentAvailability.loadLists(_context);
            return(View(agentAvailability));
        }
        // GET: AgentAvailabilities/Edit/5
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public async Task <IActionResult> Edit(int?id)
        {
            AgentAvailabilityViewModel vm;

            if (id == 0)
            {
                vm = new AgentAvailabilityViewModel(_context);
            }
            else
            {
                var agentAvailability = await _context.AgentAvailability.FindAsync(id);

                if (agentAvailability == null)
                {
                    return(NotFound());
                }
                vm = new AgentAvailabilityViewModel(_context, agentAvailability);
            }

            //ViewData["AgentId"] = new SelectList(_context.Employee, "Id", "Id", agentAvailability.AgentId);
            return(View(vm));
        }
Пример #5
0
        public async Task <ApiResult <AgentAvailabilityViewModel> > PostAgentAvailability([FromBody] AgentAvailabilityViewModel agentAvailability)
        {
            ApiResult <AgentAvailabilityViewModel> result = new ApiResult <AgentAvailabilityViewModel>();

            //Generate number
            Random rd        = new Random();
            Int32  batchCode = rd.Next(9999);

            agentAvailability.BatchNo = "A-" + batchCode.ToString();

            if (ModelState.IsValid)
            {
                result.Successfull = 0;

                try
                {
                    AgentAvailability availability = new AgentAvailability();
                    {
                        availability.Id        = agentAvailability.Id;
                        availability.AgentId   = agentAvailability.AgentId;
                        availability.BatchNo   = agentAvailability.BatchNo;
                        availability.StartDate = agentAvailability.StartDate;
                        availability.EndDate   = agentAvailability.EndDate;
                        availability.Days      = agentAvailability.Days;
                        availability.Shift1    = agentAvailability.Shift1;
                        availability.Shift2    = agentAvailability.Shift2;
                        availability.Shift3    = agentAvailability.Shift3;
                        availability.Shift4    = agentAvailability.Shift4;
                    }
                    _context.Add(availability);
                    await _context.SaveChangesAsync();

                    AgentAvailabilityDetailsViewModel details = new AgentAvailabilityDetailsViewModel();

                    int id = availability.Id;

                    details.AgentAvailabillityId = availability.Id;


                    Util util = new Util();
                    foreach (DateTime day in util.EachDay(agentAvailability.StartDate, agentAvailability.EndDate))
                    {
                        //(int)day.DayOfWeek
                        var a = (int)day.DayOfWeek;
                        foreach (char d in agentAvailability.Days)
                        {
                            var val = (int)Char.GetNumericValue(d);
                            if (a == val)
                            {
                                details.Date = day;
                                _context.Add(details.GetModel());
                                await _context.SaveChangesAsync();
                            }
                        }
                    }
                    result.Successfull = 1;
                    result.Model       = agentAvailability;
                }
                catch (Exception ex)
                {
                    result.Error         = "Failed to  Create Availability";
                    result.InternalError = ex.Message;
                    result.Successfull   = 0;
                }
            }

            //return CreatedAtAction("GetAgentAvailability", new { id = agentAvailability.Id }, agentAvailability);
            return(result);
        }