public async Task<HttpResponseMessage> Create(ParameterName param)
		{
			if (!ModelState.IsValid)
			{
				return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
			}

			if (param.Type == ParameterType.Misc && param.MiscParentId == null)
			{
				return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Для типа данных \"словарь\" необходимо выбрать словарь.");
			}

			if (_repParamNames.GetAll().Any(p => p.Name == param.Name && p.DocType == param.DocType))
			{
				return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "В этом типе документов уже используется данный параметр.");
			}


			param.Category = ParameterCategory.Document;
			param.PersonCategory = null;
			param.IsFact = false;
			param.CanRemove = true;

			await _repParamNames.AddAsync(param);

			return Request.CreateResponse(HttpStatusCode.OK, param);
		}
		public async Task<HttpResponseMessage> Update(ParameterName param)
		{
			if (!ModelState.IsValid)
			{
				return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
			}

			var paramDb = await _repParamNames.FindAsync(p => p.Id == param.Id);

			if (paramDb == null)
			{
				return Request.CreateResponse(HttpStatusCode.NotFound);
			}

			paramDb.OrderIndex = param.OrderIndex;
			await _repParamNames.UpdateAsync(paramDb);



			return Request.CreateResponse(HttpStatusCode.NoContent);
		}
Esempio n. 3
0
        private DocumentParameter UpdateOrCreateDocumentParameter(Document doc, ParameterName paramName, string strValue = null, int? intValue = null, float? floatValue = null, DateTime? dateValue = null)
        {
            strValue = NormalizeString(strValue, true);

            var docPrm = _db.DocumentParameters.SingleOrDefault(d => d.DocumentId == doc.Id && d.ParameterId == paramName.Id);
            if (docPrm == null)
            {
                docPrm = new DocumentParameter()
                {
                    DateValue = dateValue,
                    IntValue = intValue,
                    FloatValue = floatValue,
                    StringValue = strValue,
                    DocumentId = doc.Id,
                    ParameterId = paramName.Id
                };
                _db.DocumentParameters.Add(docPrm);
            }
            else
            {
                docPrm.DateValue = dateValue;
                docPrm.IntValue = intValue;
                docPrm.FloatValue = floatValue;
                docPrm.StringValue = strValue;
                docPrm.DocumentId = doc.Id;
                docPrm.ParameterId = paramName.Id;
            };

            _db.SaveChanges();
            return docPrm;
        }
Esempio n. 4
0
        private PersonFact UpdateOrCreatePersonFact(Person person, ParameterName factName, string strValue = null, int? intValue = null, float? floatValue = null, DateTime? dateValue = null)
        {
            strValue = NormalizeString(strValue, true);

            var fact = _db.PersonFacts.FirstOrDefault(f => f.PersonId == person.Id && f.FactId == factName.Id && f.StringValue == strValue
            && f.IntValue == intValue && f.FloatValue == floatValue && f.DateValue == dateValue);

            if (fact == null)
            {
                fact = new PersonFact()
                {
                    PersonId = person.Id,
                    FactId = factName.Id,
                    FactDate = DateTime.Now,
                    StringValue = strValue,
                    IntValue = intValue,
                    FloatValue = floatValue,
                    DateValue = dateValue
                };
                _db.PersonFacts.Add(fact);
            }
            else
            {
                fact.FactDate = DateTime.Now;
            };

            _db.SaveChanges();
            return fact;
        }