Example #1
0
        public ApiResponse GetSentMessages()
        {
            if (!this.GetCurrentUser().CanSendMessage || !this.GetCurrentUser().IsAdmin)
            {
                return new ApiResponse(true)
                       {
                           Data = null
                       }
            }
            ;

            var userId = this.GetCurrentUser().Id;

            using (var context = new AgmDataContext())
            {
                var res = context.Messages.Where(m => m.FromUserId == userId && !m.IsDeleted).OrderByDescending(m => m.InsertDate).ToList();

                res.ForEach(i => i.ReceiverIds = context.MessageReceivers.Where(m => m.MessageId == i.Id).Select(m => m.ToUserId).ToList());
                res.ForEach(i => i.Receivers   = string.Join(",", context.Users.Where(u => i.ReceiverIds.Contains(u.Id)).OrderBy(u => u.LastName).Select(u => u.LastName + " " + u.FirstName).ToList()));
                return(new ApiResponse(true)
                {
                    Data = context.Messages.Where(m => m.FromUserId == userId && !m.IsDeleted).OrderByDescending(m => m.InsertDate).ToList()
                });
            }
        }
Example #2
0
        public ApiResponse Set(JobAdSaveIn objToSave)
        {
            this.CheckCurrentUserPermission(((x) => x.SectionJobAdsVisible));
            var jobAd = objToSave.JobAd;

            using (var context = new AgmDataContext())
            {
                if (jobAd.Id == 0 || !context.JobAds.Any(j => j.Id == jobAd.Id))
                {
                    context.JobAds.Add(jobAd);
                }
                else
                {
                    context.JobAds.Attach(jobAd);
                    ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(jobAd, EntityState.Modified);
                }
                context.SaveChanges();
            }

            var completePath = HttpContext.Current.Server.MapPath(string.Format("../../../annunci/{0}.txt", jobAd.Id.ToString()));

            if (File.Exists(completePath))
            {
                var newName = HttpContext.Current.Server.MapPath(string.Format("../../../annunci/{0}_{1}.txt", jobAd.Id.ToString(), DateTime.Now.ToFileTimeUtc().ToString()));
                File.Move(completePath, newName);
            }

            using (StreamWriter sw = new StreamWriter(new FileStream(completePath, FileMode.Create), Encoding.GetEncoding(1252)))
            {
                sw.Write(objToSave.JobAdText);
                sw.Flush();
            }

            return(new ApiResponse(true));
        }
Example #3
0
        public ApiResponse CheckLock([FromBody] dynamic lockIn)
        {
            User currentUser = this.GetCurrentUser();
            var  userId      = (int)lockIn.Id;
            var  month       = (string)lockIn.Month;

            this.CheckCurrentUserPermission(userId, ((x) => x.SectionUsersVisible));
            using (var db = new AgmDataContext())
            {
                if (!currentUser.IsAdmin)
                {
                    MonthlyReportCalendar monthlycalendar = this.GetUserMonthlyCalendar(userId, month);
                    User user = db.Users.First(u => u.Id == userId);

                    if (monthlycalendar.Days.Where(x => x.OvertimeHours > 0 ||
                                                   (x.OrdinaryHours > 0 && x.OrdinaryHours != 8) ||
                                                   (!x.Festivity && !(x.Date.DayOfWeek == DayOfWeek.Saturday) && !(x.Date.DayOfWeek == DayOfWeek.Sunday) && !(user.IsShiftWorker) && x.OrdinaryHours != 8) ||
                                                   ((x.Festivity || x.Date.DayOfWeek == DayOfWeek.Saturday || x.Date.DayOfWeek == DayOfWeek.Sunday) && x.OrdinaryHours > 0 && !(user.IsShiftWorker))).Count() > 0)
                    {
                        return(new ApiResponse(false));
                    }
                }
                return(new ApiResponse(true));
            }
        }
Example #4
0
        public ApiResponse GetAll()
        {
            using (var context = new AgmDataContext())
            {
                var email         = (Thread.CurrentPrincipal as CustomPrincipal).User.Split('$').GetValue(0) as string;
                var user          = context.Users.Single(u => u.Email == email);
                var currentMonth  = string.Format("{0}{1}", DateTime.Today.Year.ToString(), DateTime.Today.Month.ToString().PadLeft(2, '0'));
                var mhReportLocks = context.MHReportLocks.Where(l => l.Month == currentMonth).ToList();
                if (!user.SectionUsersVisible)
                {
                    return(new ApiResponse(false));
                }

                var users = context.Users.Where(u => u.Email != email).OrderBy(u => u.LastName).ToList();
                return(new ApiResponse(true)
                {
                    Data = users.Select(u => new
                    {
                        u.Id,
                        u.Name,
                        u._isActive,
                        u._isDeleted,
                        u.Image,
                        u.Username,
                        u.IdExport,
                        currentMHReportLocked = mhReportLocks.Any(l => l.UserId == u.Id),
                        u.UserType,
                        u.UserBackgroundColor,
                        u.UserForeColor
                    })
                });
            }
        }
Example #5
0
        public ApiResponse InsertFestivity(Festivity newFestivity)
        {
            using (var context = new AgmDataContext())
            {
                var email = (Thread.CurrentPrincipal as CustomPrincipal).User.Split('$').GetValue(0) as string;
                var user  = context.Users.Single(u => u.Email == email);

                if (!user.SectionUsersVisible)
                {
                    return(new ApiResponse(false));
                }

                if (context.Festivities.Any(r => r.Date == newFestivity.Date))
                {
                    return new ApiResponse(false)
                           {
                               Errors = new ApiResponseError[] { new ApiResponseError()
                                                                 {
                                                                     Message = "Festività già esistente!"
                                                                 } }
                           }
                }
                ;

                context.Festivities.Add(newFestivity);
                context.SaveChanges();

                return(new ApiResponse(true));
            }
        }
Example #6
0
        public ApiResponse AddNotice([FromBody] Notice notIn)
        {
            this.CheckCurrentUserPermission((x) => x.CanSendMessage || x.IsAdmin);
            var userId = this.GetCurrentUser().Id;

            using (var context = new AgmDataContext())
            {
                var notToAdd = new Notice()
                {
                    Date      = DateTime.Now,
                    Subject   = notIn.Subject,
                    Text      = notIn.Text,
                    UserId    = userId,
                    IsDeleted = false
                };
                var not = context.Notices.Add(notToAdd);

                var res = context.SaveChanges();

                if (res > 0)
                {
                    return new ApiResponse(true)
                           {
                               Data = not
                           }
                }
                ;

                return(new ApiResponse(false));
            }
        }
Example #7
0
        public ApiResponse DeleteSentMessage(dynamic idIn)
        {
            this.CheckCurrentUserPermission((x) => x.CanSendMessage || x.IsAdmin);
            int id     = (int)idIn;
            var userId = this.GetCurrentUser().Id;

            using (var context = new AgmDataContext())
            {
                var messageReceiver = context.MessageReceivers.FirstOrDefault(i => i.Id == id && !i.IsDeleted);
                if (messageReceiver == null)
                {
                    return(new ApiResponse(false));
                }

                messageReceiver.IsDeleted = true;
                var res = context.SaveChanges();

                if (res > 0)
                {
                    return(new ApiResponse(true));
                }

                return(new ApiResponse(false));
            }
        }
Example #8
0
 public static MonthlyReportCalendar GetUserMonthlyCalendar(this ApiController o, int userId, string month)
 {
     using (var context = new AgmDataContext())
     {
         return(new MonthlyReportCalendar(context.MonthlyReportDays(userId, month).ToList()));
     }
 }
Example #9
0
        public ApiResponse GetCurrentUser()
        {
            using (var context = new AgmDataContext())
            {
                var email = (Thread.CurrentPrincipal as CustomPrincipal).User.Split('$').GetValue(0) as string;

                var user = context.Users.Single(u => u.Email == email && !u._isDeleted && u._isActive == 1);
                return(new ApiResponse(true)
                {
                    Data = new
                    {
                        user.Id,
                        user.Name,
                        user.Image,
                        user.Email,
                        user.SectionUsersVisible,
                        user.SectionJobAdsVisible,
                        user.SectionJobApplicantsVisible,
                        user.SectionExportVisible,
                        user.CanDeleteJobApplicants,
                        user.CanSendMessage,
                        user.IsAdmin,
                        user.IsShiftWorker,
                        user.UserType,
                        user.UserBackgroundColor,
                        user.UserForeColor
                    }
                });
            }
        }
Example #10
0
        public ApiResponse Delete(dynamic inId)
        {
            int id = (int)inId;

            this.CheckCurrentUserPermission(id, ((x) => x.SectionUsersVisible));

            using (var context = new AgmDataContext())
            {
                var user = context.Users.FirstOrDefault(u => u.Id == id);
                if (user == null)
                {
                    return(new ApiResponse(false));
                }

                user._isDeleted = true;
                var res = context.SaveChanges();

                if (res > 0)
                {
                    return(new ApiResponse(true));
                }

                return(new ApiResponse(false));
            }
        }
Example #11
0
        public ApiResponse UpdateMealVoucherOptions(MealVoucherOptions mealVoucherOptions)
        {
            using (var context = new AgmDataContext())
            {
                var email = (Thread.CurrentPrincipal as CustomPrincipal).User.Split('$').GetValue(0) as string;
                var user  = context.Users.Single(u => u.Email == email);

                if (!user.SectionUsersVisible)
                {
                    return(new ApiResponse(false));
                }

                if (!context.Options.Any(o => o.Section == OptionSection.MealVoucher))
                {
                    Option newOption = new Option()
                    {
                        Section = OptionSection.MealVoucher,
                        Value   = mealVoucherOptions
                    };

                    context.Options.Add(newOption);
                }
                else
                {
                    var optionToupdate = context.Options.First(o => o.Section == OptionSection.MealVoucher);
                    optionToupdate.SerializedValue = null;
                    optionToupdate.Value           = mealVoucherOptions;
                }

                context.SaveChanges();
                return(new ApiResponse(true));
            }
        }
Example #12
0
        public ApiResponse GetDetail(int id)
        {
            this.CheckCurrentUserPermission(id, ((x) => x.SectionUsersVisible));

            using (var context = new AgmDataContext())
            {
                var currentUser = this.GetCurrentUser();

                var user = context.Users.FirstOrDefault(u => u.Id == id && !u._isDeleted);
                if (user == null && id == 0)
                {
                    user = new User();
                }

                if (!currentUser.SectionUsersVisible)
                {
                    user.IdExport = -1;
                }

                return(new ApiResponse(true)
                {
                    Data = user
                });
            }
        }
Example #13
0
        public ApiResponse ExportRI(string year, string month)
        {
            var exportCode = new Dictionary <int, string>()
            {
                { 0, "020" },
                { 1, "805" },
                { 2, "100" },
                { 3, "102" },
                { 4, "104" },
                { 5, "101" },
                { 6, "103" },
                { 7, "105" },
                { 8, "290" },
            };

            var    res         = new List <string>();
            string monthSearch = year + month;

            using (var context = new AgmDataContext())
            {
                var users = context.Users.ToList();
                foreach (var user in users.Where(u => !u.IsDeleted && u.IsActive && u.IdExport.HasValue))
                {
                    var retItems = context.RetributionItems.Where(r => r.UserId == user.Id && r.Month == monthSearch);
                    if (retItems.Any())
                    {
                        foreach (var item in retItems)
                        {
                            string pattern = "{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}";
                            res.Add(string.Format(pattern, "00000", "00", user.IdExport.Value.ToString().PadLeft(4, '0'),
                                                  "    ",
                                                  exportCode[(int)item.Type], "                              ",
                                                  (item.Qty * 1000).ToString().PadLeft(7, '0'),
                                                  ((int)(item.Amount * 100000)).ToString().PadLeft(11, '0'),
                                                  ((int)(item.Total * 100)).ToString().PadLeft(9, '0'), year.Substring(2), month, "0"));
                        }
                    }
                }
            }

            Guid newGuid    = Guid.NewGuid();
            var  mappedPath = System.Web.Hosting.HostingEnvironment.MapPath(string.Format("~/Exports/{0}", newGuid));

            using (FileStream f = new FileStream(mappedPath, FileMode.Create))
            {
                using (StreamWriter sw = new StreamWriter(f))
                {
                    foreach (var item in res)
                    {
                        sw.WriteLine(item);
                    }
                    sw.Flush();
                }
            }

            return(new ApiResponse(true)
            {
                Data = newGuid.ToString()
            });
        }
Example #14
0
        public ApiResponse Set(JobApplicant objToSave)
        {
            this.CheckCurrentUserPermission(((x) => x.SectionJobApplicantsVisible));
            objToSave.JobCategory  = null;
            objToSave.Status       = null;
            objToSave.StatusReason = null;
            objToSave.User         = null;

            using (var context = new AgmDataContext())
            {
                var user = context.Users.First(u => u.Id == objToSave.UserId);
                if (user == null || !user.SectionJobApplicantsVisible)
                {
                    objToSave.UserId = this.GetCurrentUser().Id;
                }

                if (objToSave.Id == 0 || !context.JobApplicants.Any(j => j.Id == objToSave.Id))
                {
                    context.JobApplicants.Add(objToSave);
                }
                else
                {
                    context.JobApplicants.Attach(objToSave);
                    ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(objToSave, EntityState.Modified);
                }
                context.SaveChanges();
            }

            return(new ApiResponse(true));
        }
Example #15
0
        public ApiResponse InsertJobCategory(JobCategory newJobCategory)
        {
            using (var context = new AgmDataContext())
            {
                var email = (Thread.CurrentPrincipal as CustomPrincipal).User.Split('$').GetValue(0) as string;
                var user  = context.Users.Single(u => u.Email == email);

                if (!user.SectionUsersVisible)
                {
                    return(new ApiResponse(false));
                }

                if (context.JobCategories.Any(r => r.Name == newJobCategory.Name && r.IsDeleted == false))
                {
                    return new ApiResponse(false)
                           {
                               Errors = new ApiResponseError[] { new ApiResponseError()
                                                                 {
                                                                     Message = "Categoria già esistente!"
                                                                 } }
                           }
                }
                ;

                context.JobCategories.Add(newJobCategory);
                context.SaveChanges();

                return(new ApiResponse(true));
            }
        }
Example #16
0
        public ApiResponse Autocomplete(dynamic objIn)
        {
            this.CheckCurrentUserPermission((int)objIn.id, ((x) => x.SectionUsersVisible));

            try
            {
                var    userId    = (int)objIn.id;
                var    cultureIt = CultureInfo.GetCultureInfo("it-IT");
                string month     = objIn.month;

                var currentMonthDate   = DateTime.Parse(month, cultureIt);
                var currentMonthString = currentMonthDate.ToString("yyyy-MM-dd", cultureIt);

                using (var context = new AgmDataContext())
                {
                    var monthMinimal = currentMonthDate.ToString("yyyyMM", cultureIt);
                    if (context.MHReportLocks.Any(l => l.UserId == userId && l.Month == monthMinimal && !l.IsDeleted))
                    {
                        return(new ApiResponse(false));
                    }
                    var user = context.Users.First(u => u.Id == userId);
                    if (user != null)
                    {
                        var userHourReports = context.MonthlyReportHours.Where(r => r.UserId == userId && r.Month == currentMonthDate.Month).ToList();
                        var hourReasons     = context.HourReasons.ToList();
                        var holidays        = context.Festivities.Where(f => !f.IsDeleted).ToList();
                        var currentDate     = new DateTime(currentMonthDate.Year, currentMonthDate.Month, 1);
                        var endDate         = new DateTime(currentMonthDate.Year, currentMonthDate.Month, DateTime.DaysInMonth(currentMonthDate.Year, currentMonthDate.Month));
                        while (currentDate <= endDate)
                        {
                            if (currentDate.DayOfWeek != DayOfWeek.Saturday && currentDate.DayOfWeek != DayOfWeek.Sunday && holidays.All(h => h.Date != currentDate) && !userHourReports.Any(r => r.Date == currentDate))
                            {
                                context.MonthlyReportHours.Add(new MonthlyReportHour()
                                {
                                    UserId = user.Id, Day = currentDate.Day, Month = currentDate.Month, Year = currentDate.Year, HoursRaw = "8", ReasonId = hourReasons.First(r => r.Name == "ordinarie").Id
                                });
                            }

                            currentDate = currentDate.AddDays(1);
                        }
                        context.SaveChanges();
                    }
                }

                return(new ApiResponse(true));
            }
            catch (Exception e)
            {
                return(new ApiResponse(false)
                {
                    Errors = (new List <ApiResponseError>()
                    {
                        new ApiResponseError()
                        {
                            Message = e.Message
                        }
                    }).ToArray()
                });
            }
        }
Example #17
0
        public ApiResponse UpdateRetributionItems(List <RetributionItem> objIn)
        {
            var userId = objIn[0].UserId;

            this.CheckCurrentUserPermission(userId, ((x) => x.SectionUsersVisible));

            try
            {
                using (var db = new AgmDataContext())
                {
                    foreach (var item in objIn)
                    {
                        if (item.Total == 0.00 &&
                            db.RetributionItems.Any(
                                r => r.Month == item.Month && r.Type == item.Type && r.UserId == item.UserId))
                        {
                            var dbItem = db.RetributionItems.First(
                                r => r.Month == item.Month && r.Type == item.Type && r.UserId == item.UserId);
                            db.RetributionItems.Remove(dbItem);
                        }

                        if (item.Total != 0.00 &&
                            !db.RetributionItems.Any(
                                r => r.Month == item.Month && r.Type == item.Type && r.UserId == item.UserId))
                        {
                            db.RetributionItems.Add(item);
                        }

                        if (item.Total != 0.00 &&
                            db.RetributionItems.Any(
                                r => r.Month == item.Month && r.Type == item.Type && r.UserId == item.UserId))
                        {
                            var dbItem = db.RetributionItems.First(
                                r => r.Month == item.Month && r.Type == item.Type && r.UserId == item.UserId);
                            dbItem.Qty    = item.Qty;
                            dbItem.Amount = item.Amount;
                            dbItem.Total  = item.Total;
                        }

                        db.SaveChanges();
                    }
                }

                return(new ApiResponse(true));
            }
            catch (Exception e)
            {
                return(new ApiResponse(false)
                {
                    Errors = (new List <ApiResponseError>()
                    {
                        new ApiResponseError()
                        {
                            Message = e.Message
                        }
                    }).ToArray()
                });
            }
        }
Example #18
0
 public ApiResponse UserExists(string email)
 {
     using (var context = new AgmDataContext())
     {
         return(new ApiResponse(true)
         {
             Data = context.Users.Any(u => u.Email.ToLower().Equals(email.ToLower()))
         });
     }
 }
Example #19
0
 public ApiResponse GetNotices()
 {
     using (var context = new AgmDataContext())
     {
         var notices = context.Notices.Where(x => !x.IsDeleted).OrderByDescending(x => x.Date).ToList();
         return(new ApiResponse(true)
         {
             Data = notices
         });
     }
 }
Example #20
0
        public static User GetCurrentUser(this ApiController o)
        {
            using (var context = new AgmDataContext())
            {
                var currentEmail = (Thread.CurrentPrincipal as CustomPrincipal).User.Split('$').GetValue(0) as string;
                var currentUser  =
                    context.Users.Single(
                        u => u.Email.ToLower() == currentEmail.ToLower() && !u._isDeleted && u._isActive == 1);

                return(currentUser);
            }
        }
Example #21
0
 public static void CheckCurrentUserPermission(this ApiController o, Func <User, bool> checkFunction)
 {
     using (var context = new AgmDataContext())
     {
         var currentEmail = (Thread.CurrentPrincipal as CustomPrincipal).User.Split('$').GetValue(0) as string;
         var currentUser  = context.Users.Single(u => u.Email.ToLower() == currentEmail.ToLower() && !u._isDeleted && u._isActive == 1);
         if (!checkFunction(currentUser))
         {
             throw new Exception("Operazione non autorizzata");
         }
     }
 }
Example #22
0
        public ApiResponse GetJobCategory()
        {
            this.CheckCurrentUserPermission(((x) => x.SectionJobApplicantsVisible));

            using (var context = new AgmDataContext())
            {
                var res = context.JobCategories.Where(j => j.IsDeleted == false).ToList();
                return(new ApiResponse(true)
                {
                    Data = res.OrderBy(i => i.Name)
                });
            }
        }
Example #23
0
        public ApiResponse Get()
        {
            this.CheckCurrentUserPermission(((x) => x.SectionJobApplicantsVisible));

            using (var context = new AgmDataContext())
            {
                var res = context.JobApplicants.Include("JobCategory").Include("Status").Include("StatusReason").Include("User").ToList().OrderByDescending(a => a.InterviewDate);
                return(new ApiResponse(true)
                {
                    Data = res
                });
            }
        }
Example #24
0
        public ApiResponse GetContractType()
        {
            this.CheckCurrentUserPermission(((x) => x.SectionJobApplicantsVisible));

            using (var context = new AgmDataContext())
            {
                var res = context.ContractTypes.ToList();
                return(new ApiResponse(true)
                {
                    Data = res.OrderBy(i => i.Name)
                });
            }
        }
Example #25
0
        public ApiResponse UpdateJobCategory(JobCategory newJobCategory)
        {
            if (ModelState.IsValid)
            {
                using (var context = new AgmDataContext())
                {
                    var email = (Thread.CurrentPrincipal as CustomPrincipal).User.Split('$').GetValue(0) as string;

                    var user = context.Users.Single(u => u.Email == email);

                    if (!user.SectionUsersVisible)
                    {
                        return(new ApiResponse(false));
                    }

                    if (!context.JobCategories.Any(r => r.Id == newJobCategory.Id && r.IsDeleted == false))
                    {
                        return new ApiResponse(false)
                               {
                                   Errors =
                                       new ApiResponseError[] { new ApiResponseError()
                                                                {
                                                                    Message = "Categoria non esistente!"
                                                                } }
                               }
                    }
                    ;

                    if (context.JobCategories.Any(r => r.Id != newJobCategory.Id && r.Name == newJobCategory.Name && r.IsDeleted == false))
                    {
                        return new ApiResponse(false)
                               {
                                   Errors =
                                       new ApiResponseError[]
                                   { new ApiResponseError()
                                     {
                                         Message = "Nome categoria già utilizzato!"
                                     } }
                               }
                    }
                    ;

                    context.JobCategories.Attach(newJobCategory);
                    ((IObjectContextAdapter)context).ObjectContext.ObjectStateManager.ChangeObjectState(newJobCategory, EntityState.Modified);
                    context.SaveChanges();

                    return(new ApiResponse(true));
                }
            }
            return(new ApiResponse(false));
        }
Example #26
0
        public ApiResponse GetStatus()
        {
            this.CheckCurrentUserPermission(((x) => x.SectionJobApplicantsVisible));

            using (var context = new AgmDataContext())
            {
                var resStatus       = context.JobApplicantStatuses.Select(s => new { id = s.Id, name = s.Name, type = "status" }).ToList();
                var resStatusReason = context.JobApplicantStatusReasons.Select(s => new { id = s.Id, name = s.Name, type = "statusReason" }).ToList();
                return(new ApiResponse(true)
                {
                    Data = resStatus.Union(resStatusReason).OrderBy(s => s.name)
                });
            }
        }
Example #27
0
        public ApiResponse GetMessages()
        {
            var userId = this.GetCurrentUser().Id;

            using (var context = new AgmDataContext())
            {
                var users = context.Users.ToList();
                var res   = context.MessageReceivers.Where(r => r.ToUserId == userId && !r.IsDeleted).Include("Message").OrderByDescending(r => r.Message.InsertDate).ToList();
                res.ForEach(i => i.Message.Sender = users.Find(u => u.Id == i.Message.FromUserId).Name);
                return(new ApiResponse(true)
                {
                    Data = res
                });
            }
        }
Example #28
0
        public ApiResponse SetMessage([FromBody] MessageIn msgIn)
        {
            this.CheckCurrentUserPermission((x) => x.CanSendMessage || x.IsAdmin);
            var userId = this.GetCurrentUser().Id;

            using (var context = new AgmDataContext())
            {
                var msgToAdd = new Message()
                {
                    InsertDate = DateTime.Now,
                    Subject    = msgIn.Subject,
                    Text       = msgIn.Text,
                    FromUserId = userId
                };
                var msg = context.Messages.Add(msgToAdd);

                var messageReceivers = new List <MessageReceiver>();
                if (msgIn.SendToAll == 1)
                {
                    context.Users.Where(u => !u._isDeleted && u.Id != userId).ToList().ForEach((u) => messageReceivers.Add(new MessageReceiver()
                    {
                        MessageId = msgToAdd.Id, ToUserId = u.Id
                    }));
                }
                else
                {
                    msgIn.ToUserIds.ToList().ForEach(u => messageReceivers.Add(new MessageReceiver()
                    {
                        MessageId = msgToAdd.Id, ToUserId = u
                    }));
                }
                context.MessageReceivers.AddRange(messageReceivers);

                var res = context.SaveChanges();

                if (res > 0)
                {
                    return new ApiResponse(true)
                           {
                               Data = msg
                           }
                }
                ;

                return(new ApiResponse(false));
            }
        }
Example #29
0
        public ApiResponse Login(dynamic loginData)
        {
            string email    = loginData.Email;
            string password = loginData.Password;
            string name     = string.Empty;

            using (var context = new AgmDataContext())
            {
                if (context.Users.All(u => u.Email.ToLower() != email.ToLower() || u.Password != password || u._sectionMonthlyReportsVisible != 1 || u._isDeleted || u._isActive != 1))
                {
                    return new ApiResponse(false)
                           {
                               Errors =
                                   new ApiResponseError[]
                               { new ApiResponseError()
                                 {
                                     Message = "Email o password errati"
                                 } }
                           }
                }
                ;

                name = context.Users.First(u => u.Email.ToLower() == email.ToLower() && u.Password == password && !u._isDeleted).Name;
            }

            var tokenHandler = new JwtSecurityTokenHandler();

            var claims = new List <Claim>()
            {
                new Claim(ClaimTypes.Name, string.Format("{0}${1}", loginData.Email.ToString(), name))
            };

            var tokenDescriptor = new Microsoft.IdentityModel.Tokens.SecurityTokenDescriptor()
            {
                Subject = new ClaimsIdentity(claims),
                Issuer  = "Agm"
            };

            var jwtToken = tokenHandler.CreateToken(tokenDescriptor);

            return(new ApiResponse()
            {
                Succeed = true,
                Token = tokenHandler.WriteToken(jwtToken)
            });
        }
Example #30
0
        public ApiResponse Get()
        {
            this.CheckCurrentUserPermission(((x) => x.SectionJobAdsVisible));

            using (var context = new AgmDataContext())
            {
                var res = context.JobAds.ToList().OrderByDescending(j => j.DateFrom).ToList();
                res.Add(new JobAd()
                {
                    DateFrom = DateTime.Today, DateTo = DateTime.Today
                });
                return(new ApiResponse(true)
                {
                    Data = res
                });
            }
        }