using GozareshgirProgramManager.Application._Common.Models; using GozareshgirProgramManager.Application.Modules.Checkouts.Commands.CreateCheckout; using GozareshgirProgramManager.Application.Modules.Checkouts.Queries.GetCheckoutList; using GozareshgirProgramManager.Application.Modules.Checkouts.Queries.GetUserToGropCreate; using GozareshgirProgramManager.Domain.CheckoutAgg.Enums; using MediatR; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; namespace ServiceHost.Areas.Admin.Controllers.ProgramManager; public class CheckoutController : ProgramManagerBaseController { private readonly IMediator _mediator; public CheckoutController(IMediator mediator) { _mediator = mediator; } [HttpGet("GetUsersToGroupCreating")] public async Task>> GetUserListWhoHaveSettings([FromQuery] GetUserToGroupCreatingQuery command) { var res = await _mediator.Send(command); return res; } //[HttpGet("TypeOfCheckoutHandlerDictionary")] //public IActionResult GetTypeOfCheckoutHandlerDictionary() //{ // var names = Enum.GetNames(typeof(TypeOfCheckoutHandler)); // List result = new List(); // foreach (var name in names) // { // if (name == "CreateInGroup") // { // result.Add("CreateInGroup ایجاد گروهی sample('1404', '8', UserIdList : [1,2,3] "); // result.Add("------------------------------------------------------------------------------------------------------------------------------------"); // } // if (name == "CreateInGroup") // { // result.Add("GroupEditing ویرایش گروهی sample(checkoutIdList : ['3fa85f64-5717-4562-b3fc-2c963f66afa6', '3fa85f64-5717-4562-b3fc-2c963f66afa6'])"); // result.Add("------------------------------------------------------------------------------------------------------------------------------------"); // } // if (name == "CreateInGroup") // result.Add("SingleEdit ویرایش تکی sample(checkoutId : '3fa85f64-5717-4562-b3fc-2c963f66afa6')" ); // } // return Ok(result); //} [HttpPost("Create")] public async Task Create([FromBody] List? UserIdlist, string Year, string Month) { var createCommand = new CreateOrEditCheckoutCommand( TypeOfCheckoutHandler.CreateInGroup, Year, Month,UserIdlist, new List()); var res = await _mediator.Send(createCommand); return res; } [HttpPost("Edit")] public async Task EditSingleOrGroup([FromBody] List CheckoutIdList) { var createCommand = new CreateOrEditCheckoutCommand( TypeOfCheckoutHandler.GroupEditing, null, null, null, CheckoutIdList); var res = await _mediator.Send(createCommand); return res; } [HttpGet("GetCheckoutList")] public async Task>>> GetCheckoutList([FromQuery] GetCheckoutListQuery command) { var res = await _mediator.Send(command); return res; } }