public async Task <IActionResult> UpdatePositionAssign([FromBody] UpdatePositionAssignModel assignation)
        {
            var result = await _positionAssignRepo.UpdateAssign(assignation);


            UserModel UserName = _userRepo.GetUser();

            if (result.Ok)
            {
                var History = new HistoryModel();    // Add to History all actions of relevancy
                {
                    History.StaffID         = assignation.StaffID;
                    History.MPLID           = assignation.MPLID;
                    History.HistoryDate     = DateTime.UtcNow;
                    History.HistoryAction   = "Updated Placement";
                    History.HistoryLocation = "Some Destínation";
                    History.ApplicationType = "Assign";
                    History.DateModified    = DateTime.UtcNow;
                    History.Status          = "Received";
                    History.StartDate       = assignation.StartDate;
                    History.Accepted        = assignation.Accept;
                    History.EndDate         = assignation.EndDate;
                    History.HistoryWho      = UserName.UserName;
                    // History.HistoryWho = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                };



                _historyRepo.UpdateHistory(History);
            }

            return(Ok(result));
        }
Beispiel #2
0
        public async Task <string> SendMailAsync([FromBody] MailModelSelect model)
        {
            UserModel UserName = _userRepo.GetUser();

            foreach (string userid in model.StaffID)
            {
                try
                {
                    var staff = (await _positionAssignRepo.StaffAssign(userid)).OrderBy(m => m.StaffStartDate).ToList();


                    var staffOnly = _staffRepo.GetByStaffIdJoins(userid);

                    //if (staffOnly==null)
                    //{
                    //    var staffOnly2 = _staffRepo.GetByStaffId(userid);

                    //}

                    var templates = _mailRepos.GetTemplate(model.TemplateName);

                    string content1 = model.Content.Replace("/\r", "<br />");

                    string content = content1.Replace("\n", "<br />");



                    dynamic currentPositionAssign   = null;
                    dynamic nextPositionAssign      = null;
                    dynamic followingPositionAssign = null;



                    for (var assignobj = 0; assignobj < staff.Count; assignobj++)
                    {
                        switch (assignobj)

                        {
                        case 0:
                            currentPositionAssign = staff[assignobj];



                            content = content.Replace("<DESTINATION1>", currentPositionAssign.Destination);
                            content = content.Replace("<RESORT1>", currentPositionAssign.ConceptHotel);

                            content = content.Replace("<JOBTITLE1>", currentPositionAssign.JobTitle);
                            content = content.Replace("<CENTRALID>", currentPositionAssign.CentralID);

                            content = content.Replace("<ASSIGNSTARTDATE1>", currentPositionAssign.StaffStartDate.ToString("yyyy-MM-dd"));
                            content = content.Replace("<ASSIGNENDDATE1>", currentPositionAssign.StaffEndDate.ToString(("yyyy-MM-dd")));


                            break;

                        case 1:
                            nextPositionAssign = staff[assignobj];



                            content = content.Replace("<DESTINATION2>", nextPositionAssign.Destination);
                            content = content.Replace("<RESORT2>", nextPositionAssign.ConceptHotel);

                            content = content.Replace("<JOBTITLE2>", nextPositionAssign.JobTitle);


                            content = content.Replace("<ASSIGNSTARTDATE2>", nextPositionAssign.StaffStartDate.ToString(("yyyy-MM-dd")));
                            content = content.Replace("<ASSIGNENDDATE2>", nextPositionAssign.StaffEndDate.ToString(("yyyy-MM-dd")));


                            break;

                        case 2:
                            followingPositionAssign = staff[assignobj];

                            content = content.Replace("<DESTINATION3>", followingPositionAssign.Destination);
                            content = content.Replace("<RESORT3>", followingPositionAssign.ConceptHotel);

                            content = content.Replace("<JOBTITLE3>", followingPositionAssign.JobTitle);


                            content = content.Replace("<ASSIGNSTARTDATE3>", followingPositionAssign.StaffStartDate.ToString(("yyyy-MM-dd")));
                            content = content.Replace("<ASSIGNENDDATE3>", followingPositionAssign.StaffEndDate.ToString(("yyyy-MM-dd")));

                            break;
                        }
                    }

                    content = content.Replace("<FIRSTNAME>", staffOnly.FirstName);
                    content = content.Replace("<LASTNAME>", staffOnly.LastName);

                    string subject = model.Subject;


                    subject = subject.Replace("<FIRSTNAME>", staffOnly.FirstName);
                    subject = subject.Replace("<LASTNAME>", staffOnly.LastName);
                    // subject = subject.Replace("<FORMNAME>", "Staff Profil");
                    string[] email = new string[] { staffOnly.Email, staffOnly.Email };
                    List <KeyValuePair <string, string> > bodyProperties = new List <KeyValuePair <string, string> >();
                    foreach (var dir in email)
                    {
                        bodyProperties.Add(new KeyValuePair <string, string>("emailTo", dir.ToString()));
                    }



                    bodyProperties.Add(new KeyValuePair <string, string>("userAddress", model.Email));
                    bodyProperties.Add(new KeyValuePair <string, string>("subject", subject));
                    bodyProperties.Add(new KeyValuePair <string, string>("body", content));
                    bodyProperties.Add(new KeyValuePair <string, string>("isBodyHtml", "true"));
                    // subject = subject.Replace("<FORMNAME>", "Staff Profil");

                    var dataContent = new FormUrlEncodedContent(bodyProperties.ToArray());

                    var contents = new FormUrlEncodedContent(bodyProperties);

                    var response = await client.PostAsync(Config.MailApi, contents);

                    var responseString = await response.Content.ReadAsStringAsync();



                    var History = new HistoryModel();    // Add to History all actions of relevancy
                    {
                        History.StaffID = userid;

                        History.HistoryDate     = DateTime.UtcNow;
                        History.HistoryAction   = "Mail Sent using template " + model.TemplateName;
                        History.HistoryLocation = "Some Destínation";
                        History.ApplicationType = "Mail";
                        History.DateModified    = DateTime.UtcNow;
                        History.Status          = "Sent";
                        // History.StartDate = assignation.StartDate;
                        // History.Accepted = assignation.Accept;
                        //History.EndDate = assignation.EndDate;
                        History.HistoryWho = UserName.UserName;
                        //History.HistoryWho = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                    };

                    _historyRepo.UpdateHistory(History);
                }
                catch (Exception e)
                {
                    Console.Write(e);
                    return(e.ToString());
                }
            }
            return("Ok");
        }