|
|
- using Sevomin.Models.Helpers;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.ComponentModel.DataAnnotations;
- using System.Linq;
- //استخدام نیروی «کنترل پروژه» با ×× سال سابقه ×× دارای ×مدرک× ×× برای کار در ×کشور×شهر×
-
- namespace Sevomin.Models
- {
-
- public class JobMiniViewModel
- {
- private int MaxNumberOfMiniParams = 6;
- [Key]
- public long Id { get; set; }
-
- [Required]
- [StringLength(128)]
- public string AvalinId { get; set; }
-
- public string AvalinUsername { get; set; }
-
- [DisplayName("آخرین مهلت اعلام آمادگی")]
- [DataType(DataType.Date)]
- public DateTime ExpireDate { get; set; }
-
- [DisplayName("آخرین مهلت اعلام آمادگی")]
- [DataType(DataType.Date)]
- public string JalaliExpireDate
- {
- get
- {
- return DateAssist.ToShamsi(this.ExpireDate);
- }
- set
- {
- ExpireDate = DateAssist.ValidateAndSetToMiladi(value) ?? DateTime.MinValue;
- }
- }
-
- [DisplayName("کار تمام وقت")]
- public bool IsFullTime { get; set; }
-
- public bool ShowCompanyLogo { get; set; }
- public bool ShowCompanyName { get; set; }
-
- public string CompanyName { get; set; }
- public string CompanyLogo { get; set; }
-
- public IList<Tuple<string, string>> Parameters;
-
- public JobMiniViewModel(Job job, int maxNumberOfMiniParams = 6)
- {
- this.MaxNumberOfMiniParams = maxNumberOfMiniParams;
- this.Id = job.Id;
- this.AvalinId = job.AvalinId;
- this.ExpireDate = job.ExpireDate == DateTime.MinValue ? DateTime.Now.AddDays(14) : job.ExpireDate;
- this.IsFullTime = job.IsFullTime;
- this.AvalinUsername = job.Avalin.UserName;
- this.ShowCompanyLogo = job.ShowCompanyLogo;
- this.ShowCompanyName = job.ShowCompanyName;
- if (this.ShowCompanyName)
- this.CompanyName = job.Avalin.DisplayName;
-
- if (job.JobParameters == null)
- return;
-
- Parameters = new List<Tuple<string,string>>();
-
- var jpz = job.JobParameters.Where(x=>!string.IsNullOrWhiteSpace(x.StringValue)).OrderByDescending(x=>x.Moscow).Take(Math.Min(MaxNumberOfMiniParams * 3, job.JobParameters.Count()))
- .OrderBy(x => x.Parameter.GroupName).ThenByDescending(x => x.Moscow).Take((int)(MaxNumberOfMiniParams*1.5)).ToList();
-
- for (int i = 0; i < jpz.Count(); i++)
- {
- string format = jpz[i].Parameter.DisplayFormat;
- format = format.Replace("$", jpz[i].Parameter.Name);
-
- string value = jpz[i].StringValue;
- if (jpz[i].Parameter.DisplayMethod == 4)
- {
- value = jpz[i].Parameter.ParameterValues.ToList().Where(x =>x.NumbericValue == jpz[i].NumericValue).Select(x => x.Value)
- .FirstOrDefault();
- }
- Parameters.Add(new Tuple<string,string>(format, value));
- }
- }
- }
- }
|